EFCore2.1中DbFirst和CodeFirst簡單使用


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 ? "成功了" : "失敗了");

            }
 
        



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM