0

0

ASP.NET使用EntityFrameworkCore CodeFrist

大家讲道理

大家讲道理

发布时间:2017-05-31 14:35:45

|

1980人浏览过

|

来源于php中文网

原创

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

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

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


    public class User
    {
        public int Id { get; set; }
        /// 
        /// 角色Id
        /// 
        public int RoleId { get; set; }
        public virtual Role Role { get; set; }
        /// 
        /// 状态
        /// 
        public int Status { get; set; }
        /// 
        /// 登陆名
        /// 
        public string Login { get; set; }
        /// 
        /// 登陆密码
        /// 
        public string Pwd { get; set; }
    }


    public class Role
    {
        public int Id { get; set; }
        /// 
        /// 角色名
        /// 
        public string Name { get; set; }
        /// 
        /// 一个角色的多个用户
        /// 
        public virtual ICollection Users { get; set; }
    }

4,创建DbContext


    public class EFDbContext: DbContext
    {
        public EFDbContext(DbContextOptions options) : base(options)
        { }
        public DbSet Roles { get; set; }
        public DbSet Users { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            Role(modelBuilder);
            User(modelBuilder);
        }

        private void User(ModelBuilder modelBuilder)
        {
            var userBuilder = modelBuilder.Entity().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().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,用于创建初始数据


    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添加如下代码


// DbContext
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

在Configure方法内添加

乐彼多用户商城系统LBMall(.net)
乐彼多用户商城系统LBMall(.net)

乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1

下载


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

7,修改appsettings.json


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

8,运行程序,查看结果

 

 

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP.NET参考手册
ASP.NET参考手册

共0课时 | 0人学习

传播智客ASP.NET中级系列视频教程
传播智客ASP.NET中级系列视频教程

共33课时 | 6.3万人学习

传播智客ASP.NET高级系列视频教程
传播智客ASP.NET高级系列视频教程

共34课时 | 6.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号