您好,登錄后才能下訂單哦!
新建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 { /// <summary> /// 數據庫對象 /// </summary> public class PermissionContext : DbContext { public PermissionContext(DbContextOptions<PermissionContext> opt) : base(opt) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { //確定UserRole表中的兩個字段是聯合主鍵 modelBuilder.Entity<UserRole>() .HasKey(u=>new { u.UserID,u.RoleID}); } public DbSet<User> Users { get; set; } public DbSet<Role> Roles { get; set; } public DbSet<UserRole> UserRoles { get; set; } } /// <summary> /// 用戶表 /// </summary> public class User { [Key] public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } public List<UserRole> UserRoles { get; set; } } /// <summary> /// 角色表 /// </summary> public class Role { [Key] public int ID { get; set; } public string RoleName { get;set; } public List<UserRole> UserRoles { get; set; } } /// <summary> /// 用戶角色關系 /// </summary> 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<PermissionContext>(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的管理工具查看,生成的數據庫,并且表中的表關系入下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。