EFCore中沒有DbFirst了吧,應該都是Code First
先說說第一種,Code First From Database(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
然后復制,粘貼,看到已用時間:xxxxxxx即可,
然后繼續在程序包管理控制台再輸入:
Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"
-OutputDir "Models" 可不寫,EFCore中只能通過命令生成了,不能像以前EF6一樣可以鼠標操作生成了,如果加上了則會在項目中添加models文件夾,生成的context和實體類都放到models文件夾中,如不加,實體則直接生成到項目中

最后在控制台測試一下
再試試第二種熟悉的Code First(代碼先行,跟以前EF幾乎是一模一樣),還是比較熟悉這個
前面步驟都是一樣的,建好項目,安裝依賴包,不過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 ? "成功了" : "失敗了"); }
