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,运行程序,查看结果

 

 

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共33课时 | 6.4万人学习

传播智客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号