Maison > Article > développement back-end > ASP.NET utilise EntityFrameworkCore CodeFrist
1, téléchargez d'abord le SDK officiel .net core de Microsoft correspondant et exécuteztemps en fonction des besoins personnels (https://www.microsoft.com/net/download/core )
2. Créer un projet de base asp.net
3. Créer des entités, des utilisateurs et des rôles
public class User { public int Id { get; set; } /// <summary> /// 角色Id /// </summary> public int RoleId { get; set; } public virtual Role Role { get; set; } /// <summary> /// 状态 /// </summary> public int Status { get; set; } /// <summary> /// 登陆名 /// </summary> public string Login { get; set; } /// <summary> /// 登陆密码 /// </summary> public string Pwd { get; set; } }
public class Role { public int Id { get; set; } /// <summary> /// 角色名 /// </summary> public string Name { get; set; } /// <summary> /// 一个角色的多个用户 /// </summary> public virtual ICollection<User> Users { get; set; } }
4, créez DbContext
public class EFDbContext: DbContext { public EFDbContext(DbContextOptions<EFDbContext> options) : base(options) { } public DbSet<Role> Roles { get; set; } public DbSet<User> Users { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { Role(modelBuilder); User(modelBuilder); } private void User(ModelBuilder modelBuilder) { var userBuilder = modelBuilder.Entity<User>().ToTable("User"); // Properties userBuilder.Property(t => t.Id).ValueGeneratedOnAdd(); userBuilder.Property(t => t.RoleId).IsRequired(); userBuilder.Property(t => t.Status).IsRequired(); userBuilder.Property(t => t.Login).IsRequired().HasMaxLength(30); userBuilder.Property(t => t.Pwd).IsRequired().HasMaxLength(60); // Primary Key userBuilder.HasKey(t => t.Id); // Index userBuilder.HasIndex(t => t.Login); // Relationships userBuilder.HasOne(t => t.Role).WithMany(t => t.Users).HasForeignKey(t => t.RoleId); } private void Role(ModelBuilder modelBuilder) { var roleBuilder = modelBuilder.Entity<Role>().ToTable("Role"); // Properties roleBuilder.Property(t => t.Id).ValueGeneratedOnAdd(); roleBuilder.Property(t => t.Name).IsRequired().HasMaxLength(30); // Primary Key roleBuilder.HasKey(t => t.Id); } }
5, créez DbInitializer, utilisé pour créer les données initiales
public class DbInitializer { public async static Task InitData(EFDbContext context) { if (context.Database != null && context.Database.EnsureCreated()) { //角色配置 context.Roles.AddRange(new Role[] { new Role { Name="超级管理员" }, new Role { Name="管理员" } }); //默认用户 context.Users.AddRange(new User[] { new User { RoleId=1, Login="administrator", Pwd="111111" }, new User { RoleId=2, Login="admin", Pwd="111111" } }); await context.SaveChangesAsync(); } }
6, modifiez la méthode de classe Startup
Ajoutez le code suivant dans ConfigureServices
// DbContext services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Ajoutez
public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseMvc(); await DbInitializer.InitData(app.ApplicationServices.GetService<EFDbContext>()); }
7 dans la méthode Configure et modifiez appsettings.json
{ "ConnectionStrings": { "DefaultConnection": "Data Source=.;Initial Catalog=LniceCore;Integrated Security=SSPI;" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" } } }
8. Exécutez le programme et affichez les résultats
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!