千家信息网

.net core 1.1下的EntityFramework Code First

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,新建asp.net core项目,然后把.net core引用的类库升级到1.1,这时,需要手动在project.json下添加一个runtimes节点,如下:"runtimes": {"win10-
千家信息网最后更新 2026年11月02日.net core 1.1下的EntityFramework Code First

新建asp.net core项目,然后把.net core引用的类库升级到1.1,这时,需要手动在project.json下添加一个runtimes节点,如下:

"runtimes": {

"win10-x64": {}

}

同时在Nuget中添加下面三个类库(1.1版本):

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

接下来定义DbContext,用来生成数据库,代码如下:

using Microsoft.EntityFrameworkCore;using System.Collections.Generic;using System.ComponentModel.DataAnnotations; namespace EntityFrameworkDemo.Model{    ///     /// 数据库对象    ///     public class PermissionContext : DbContext    {        public PermissionContext(DbContextOptions opt) : base(opt)        {        }        protected override void OnModelCreating(ModelBuilder modelBuilder)        {            //确定UserRole表中的两个字段是联合主键            modelBuilder.Entity()                .HasKey(u=>new { u.UserID,u.RoleID});        }        public DbSet Users        { get; set; }        public DbSet Roles        { get; set; }         public DbSet UserRoles        { get; set; }    }    ///     /// 用户表    ///     public class User    {        [Key]        public int ID        { get; set; }        public string UserName        { get; set; }         public string Password        { get; set; }         public List UserRoles { get; set; }    }    ///     /// 角色表    ///     public class Role    {        [Key]        public int ID        { get; set; }        public string RoleName        {            get;set;        }        public List UserRoles { get; set; }    }    ///     /// 用户角色关系    ///     public class UserRole    {              public int UserID        { get; set; }              public int RoleID        { get; set; }         public User User{ get; set; }        public Role Role { get; set; }    }}


这时,需要在StartUp.cs中添加数据连字符串,来指导自动生成数据库时的服务器,数据库名等信息

public void ConfigureServices(IServiceCollection services){    var connection = @"Server=.;Database=PermissionDb;Trusted_Connection=True;";    services.AddDbContext(options => options.UseSqlServer(connection));     services.AddMvc();}


现在,先Build一下项目,用两个命令在程序包管理器控制台(vs的菜单"工具"-"NuGet包管理器"-"程序包管理器控制台")中执行:

Add-Migration MyFirstMigration

用来生成命令,生成数据库和表的C#代码

Update-Database

执行生成的代码

在用Add-Migration MyFirstMigration时会报个错,在netcoreapp1.1中没有需要的项目配置文件(.json的),这时打开bin目录,会发现在netcoreapp1.1下会多一个win10-x64文件夹,这正是我们手工在project.json中添加的,打开这个文件夹,把里面对应的.json复制出来就可以(这里应该是Add-MigrationMyFirstMigration生成代码时,默认的寻找配置文件与我们手工添加runtimes的路径不一直导致)

复制完后再Add-Migration MyFirstMigration一次

会发现在项目中添加了一个文件夹Migrations,并在下面生成两个文件,这便是生成数据库所需的指令。

现在再执行Update-Database

当执行成功后,用SQL Server的管理工具查看,生成的数据库,并且表中的表关系入下:


生成 数据 数据库 文件 代码 项目 管理 两个 文件夹 命令 工具 手工 控制台 用户 程序 角色 控制 配置 成功 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 广州淘业互联网络科技 江苏根荣互联网科技 互联网科技有限公司经营范围 深圳互联网络科技有限公司 北京互联网络科技有限公司 互联网科技logo设计 广西互联网科技公司 人人互联网科技是培训 互联网科技公司做什么 互联网科技中介 智腾互联网科技有限公司 阿大互联网科技有限公司 卓翼科技产业互联网合作 互联网企业科技类企业如何做账 宇信科技在杭州互联网排第几 北京互联网科技类企业分布 科技和互联网行业的特点 上海互联网科技园景观 高科技和互联网的现代国家 华服互联网科技怎么样 互联网医疗科技 广州互联网络科技有限公司 居家互联网科技有限公司 科技大学互联网专业好不好 花神(南京)互联网科技有限公司 互联网科技与大数据专业 互联网科技快讯热点 青岛易易互联网科技 宁波允成互联网科技有限公司
0