ASP.NET使用EntityFrameworkCore CodeFrist


本文摘自PHP中文网,作者大家讲道理,侵删。

1,首先根据个人需要下载对应的微软官方.net core sdk和runtime(https://www.microsoft.com/net/download/core)

2,创建一个asp.net Core的项目

3,创建实体Entity,用户和角色


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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; }

}


1

2

3

4

5

6

7

8

9

10

11

12

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,创建DbContext


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

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,创建DbInitializer,用于创建初始数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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,修改Startup类方法

在ConfigureServices添加如下代码


1

2

// DbContext

services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

在Configure方法内添加


1

2

3

4

5

6

7

8

9

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,修改appsettings.json


1

2

3

4

5

6

7

8

9

10

11

12

13

{

  "ConnectionStrings": {

    "DefaultConnection": "Data Source=.;Initial Catalog=LniceCore;Integrated Security=SSPI;"

  },

  "Logging": {

    "IncludeScopes": false,

    "LogLevel": {

      "Default": "Debug",

      "System": "Information",

      "Microsoft": "Information"

    }

  }

}

8,运行程序,查看结果

以上就是ASP.NET使用EntityFrameworkCore CodeFrist 的详细内容!

相关阅读 >>

asp.net mvc如何正确运用异步编程技术

asp.net利用反射实现给model类赋值的示例代码分析

asp.net mvc部分视图渲染html的实例教程

asp.net core应用程序运行vue并且部署在iis上的详解

asp.net core如何安装?详解asp.net core安装的实例教程

asp.net core中间件设置教程(7)_实用技巧

asp.net 获取 客户端ip

asp.net部署到iis常见问题的解决方法_实用技巧

怎么操作 asp.net web api ?

关于asp.net core网站在docker中运行的详解

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...