EFCore中沒有DbFirst了吧,應該都是Code First 先說說第一種,Code First From Database(DbFirst)資料庫先行,這種方式就要命令行了...(特不喜歡命令行。。): 1.建好項目後通過 NuGet 安裝所需依賴性: 可以右鍵項目通過管理NuGet程式包的 ...
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 ? "成功了" : "失敗了"); }