91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.net core 1.1下的EntityFramework Code First

發布時間:2020-08-30 07:01:43 來源:網絡 閱讀:2111 作者:桂素偉 欄目:數據庫

新建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的路徑不一直導致)

 .net core 1.1下的EntityFramework Code First

復制完后再Add-Migration MyFirstMigration一次

會發現在項目中添加了一個文件夾Migrations,并在下面生成兩個文件,這便是生成數據庫所需的指令。

現在再執行Update-Database

.net core 1.1下的EntityFramework Code First

當執行成功后,用SQL Server的管理工具查看,生成的數據庫,并且表中的表關系入下:

.net core 1.1下的EntityFramework Code First


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家口市| 临海市| 徐闻县| 乌拉特前旗| 同德县| 大理市| 凤翔县| 涟源市| 辉县市| 阿荣旗| 天柱县| 遂昌县| 施秉县| 齐齐哈尔市| 灵丘县| 慈溪市| 阿图什市| 鱼台县| 扬州市| 富平县| 虎林市| 五华县| 新竹市| 新闻| 左权县| 卢氏县| 闽清县| 南汇区| 侯马市| 阿图什市| 霍城县| 格尔木市| 丰都县| 宜阳县| 青浦区| 观塘区| 汶上县| 新巴尔虎右旗| 汪清县| 阿巴嘎旗| 左贡县|