1. 程式人生 > 其它 >EFCore中兩種First的使用

EFCore中兩種First的使用

首先說一下(DbFirst)資料庫先行,

1.建好專案後通過 NuGet 安裝所需依賴性:

(1)Microsoft.EntityFrameworkCore 
(2)Microsoft.EntityFrameworkCore.Design 
(3)Microsoft.EntityFrameworkCore.SqlServer 
(4)Microsoft.EntityFrameworkCore.SqlServer.Design 
(5)Microsoft.EntityFrameworkCore.Tools 

可以右鍵專案通過管理NuGet程式包的方式安裝,也可以通過命令安裝(找到VS工具欄 ---> NuGet 包管理器 ---> 程式包管理控制檯):

注意選擇預設專案

Install-package Microsoft.EntityFrameworkCore 
Install-package Microsoft.EntityFrameworkCore.Tools 
Install-package Microsoft.EntityFrameworkCore.Design 
Install-package Microsoft.EntityFrameworkCore.SqlServer 
Install-package Microsoft.EntityFrameworkCore.SqlServer.Design 

然後繼續在程式包管理控制檯再輸入:

Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"

-OutputDir "Models" 可以不寫,如果加上了則會在專案中新增models資料夾,生成的context和實體類都放到models資料夾中

下面使用的是Code First

首先建好專案,安裝依賴包

Microsoft.EntityFrameworkCore.SqlServer 
Microsoft.EntityFrameworkCore 

編寫Studnet和Classinfo實體類

context上下文類需要繼承DbContext
    public class CodeFirstContext : DbContext
    {
        public CodeFirstContext()
        {

        }
        public CodeFirstContext(DbContextOptions options) : base(options)
        {

        }
        public DbSet<Student> Student { get; set; }
        public DbSet<ClassInfo> ClassInfo { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer("Server=.;Database=EFCoreCodeFirst;uid=sa;pwd=123");
            }
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

        }
    }
基本上跟Ef6差不多的,寫好之後測試一下就OK了:
using (CodeFirstContext db = new CodeFirstContext())
            {
                db.Database.EnsureCreated();    //如果資料庫不存在則建立,存在則不管
                db.Add(new ClassInfo { ClassName = "三班" });
                var result = db.SaveChangesAsync().Result;
                Console.WriteLine(result > 0 ? "成功加入" : "失敗add");

            }