ASP.NET utilise EntityFrameworkCore CodeFrist

大家讲道理
Libérer: 2017-05-31 14:35:45
original
1774 Les gens l'ont consulté

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; }
    }
Copier après la connexion


    public class Role
    {
        public int Id { get; set; }
        /// <summary>
        /// 角色名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 一个角色的多个用户
        /// </summary>
        public virtual ICollection<User> Users { get; set; }
    }
Copier après la connexion

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);
        }
    }
Copier après la connexion

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();
            }
        }
Copier après la connexion

6, modifiez la méthode de classe Startup

Ajoutez le code suivant dans ConfigureServices


// DbContext
services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Copier après la connexion

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>());
        }
Copier après la connexion

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"
    }
  }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal