EFCore2.0 Code First基本使用


前言

在網上找EFCore Code First相關的文章,很多都是基於core 1.0版本的,覺得有必要自己實踐下2.0。所以,擼起袖子干吧!~

1.新建控制台項目(這里就不放圖了)

2.打開程序包管理器控制台。工具->NuGet包管理器->程序包管理器控制台

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

依次安裝以上三個Nuget包

3.新建User類:

 public class User
    {
        public int Id { get; set; }

        [MaxLength(30), Required]
        public string Account { get; set; }

        [MaxLength(30), Required]
        public string Password { get; set; }
    }
public class TestDbContext : DbContext
    {
        public DbSet<User> User { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=.");//數據庫連接字符串,其中TestDB是數據庫名稱
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<User>().HasIndex(u => u.Account).IsUnique();
        }
    }

4.初始化,生成數據庫

在程序包管理器控制台依次執行以下命令

Add-Migration Init  //其中Init是你的版本名稱
update-database Init //更新數據庫操作 init為版本名稱

執行完以上操作后,數據庫就創建成功了。

4.數據庫修改

在我們實際開發的過程中,經常性的會修改字段,那在code First中如何處理呢?
實例:將User類的Password的長度修改為15

 public class User
    {
        public int Id { get; set; }

        [MaxLength(30), Required]
        public string Account { get; set; }

        [MaxLength(15), Required]
        public string Password { get; set; }
    }

控制台運行:

Add-Migration EditPwdLength //同上,不在解釋
update-database EditPwdLength

運行成功后,刷新數據庫查看

好了。到這里基本就是使用EF Core CodeFirst的基本操作了。其他高深的操作,LZ也在學習!~權當記錄吧。

參考

EntityFrameworkCore

問題

1.在實際生產環境中,我們是不可能直接在本地去更新數據庫的,需要生成Sql腳本,在服務器上運行。至於如何生成腳本,LZ也還沒找到,希望大佬們能給方案。

生成腳本方案 2017年12月31日14:26:01

update-database script EditPwdLength


免責聲明!

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



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