ASP.NET verwendet EntityFrameworkCore CodeFrist

大家讲道理
Freigeben: 2017-05-31 14:35:45
Original
1773 Leute haben es durchsucht

1, laden Sie zunächst das entsprechende offizielle Microsoft .net Core SDK herunter und führen Sie esZeit entsprechend Ihren persönlichen Bedürfnissen aus (https://www.microsoft.com/net/download/core )

2. Erstellen Sie ein asp.net Kernprojekt

3. Erstellen Sie Entitäten, Benutzer und Rollen


    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; }
    }
Nach dem Login kopieren


    public class Role
    {
        public int Id { get; set; }
        /// <summary>
        /// 角色名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 一个角色的多个用户
        /// </summary>
        public virtual ICollection<User> Users { get; set; }
    }
Nach dem Login kopieren

4, erstellen Sie 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);
        }
    }
Nach dem Login kopieren

5, erstellen Sie DbInitializer, der zum Erstellen von Anfangsdaten verwendet wird


    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();
            }
        }
Nach dem Login kopieren

6, ändern Sie die Startup-Klassenmethode

Fügen Sie den folgenden Code in „ConfigureServices“ hinzu


// DbContext
services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Nach dem Login kopieren

Fügen Sie


        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>());
        }
Nach dem Login kopieren

7 in der Methode „Configure“ hinzu und ändern Sie die App-Einstellungen.json


{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=.;Initial Catalog=LniceCore;Integrated Security=SSPI;"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}
Nach dem Login kopieren

8. Führen Sie das Programm aus und sehen Sie sich die Ergebnisse an

Das obige ist der detaillierte Inhalt vonASP.NET verwendet EntityFrameworkCore CodeFrist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage