真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

.netcore1.1下的EntityFrameworkCodeFirst

新建asp.net core項(xiàng)目,然后把.net core引用的類庫升級(jí)到1.1,這時(shí),需要手動(dòng)在project.json下添加一個(gè)runtimes節(jié)點(diǎn),如下:

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為東烏珠穆沁等服務(wù)建站,東烏珠穆沁等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東烏珠穆沁企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

"runtimes": {

  "win10-x64": {}

}

 同時(shí)在Nuget中添加下面三個(gè)類庫(1.1版本):

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

 

接下來定義DbContext,用來生成數(shù)據(jù)庫,代碼如下:

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
 
namespace EntityFrameworkDemo.Model
{
    /// 
    /// 數(shù)據(jù)庫對(duì)象
    /// 
    public class PermissionContext : DbContext
    {
        public PermissionContext(DbContextOptions opt) : base(opt)
        {
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //確定UserRole表中的兩個(gè)字段是聯(lián)合主鍵
            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; }
    }
    /// 
    /// 用戶角色關(guān)系
    /// 
    public class UserRole
    {
      
        public int UserID
        { get; set; }
      
        public int RoleID
        { get; set; }
 
        public User User{ get; set; }
        public Role Role { get; set; }
    }
}

這時(shí),需要在StartUp.cs中添加數(shù)據(jù)連字符串,來指導(dǎo)自動(dòng)生成數(shù)據(jù)庫時(shí)的服務(wù)器,數(shù)據(jù)庫名等信息

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

現(xiàn)在,先Build一下項(xiàng)目,用兩個(gè)命令在程序包管理器控制臺(tái)(vs的菜單“工具”-“NuGet包管理器”-“程序包管理器控制臺(tái)”)中執(zhí)行:

Add-Migration MyFirstMigration

用來生成命令,生成數(shù)據(jù)庫和表的C#代碼

Update-Database

執(zhí)行生成的代碼

在用Add-Migration MyFirstMigration時(shí)會(huì)報(bào)個(gè)錯(cuò),在netcoreapp1.1中沒有需要的項(xiàng)目配置文件(.json的),這時(shí)打開bin目錄,會(huì)發(fā)現(xiàn)在netcoreapp1.1下會(huì)多一個(gè)win10-x64文件夾,這正是我們手工在project.json中添加的,打開這個(gè)文件夾,把里面對(duì)應(yīng)的.json復(fù)制出來就可以(這里應(yīng)該是Add-MigrationMyFirstMigration生成代碼時(shí),默認(rèn)的尋找配置文件與我們手工添加runtimes的路徑不一直導(dǎo)致)

 .net core 1.1下的EntityFramework Code First

復(fù)制完后再Add-Migration MyFirstMigration一次

會(huì)發(fā)現(xiàn)在項(xiàng)目中添加了一個(gè)文件夾Migrations,并在下面生成兩個(gè)文件,這便是生成數(shù)據(jù)庫所需的指令。

現(xiàn)在再執(zhí)行Update-Database

.net core 1.1下的EntityFramework Code First

當(dāng)執(zhí)行成功后,用SQL Server的管理工具查看,生成的數(shù)據(jù)庫,并且表中的表關(guān)系入下:

.net core 1.1下的EntityFramework Code First


分享題目:.netcore1.1下的EntityFrameworkCodeFirst
網(wǎng)頁路徑:http://weahome.cn/article/gpdghd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部