.Net Core-類庫中創建CodeFirst


本文僅用來學習記錄。
搭建項目架構的時候,需要在類庫中進行CodeFirst數據遷移
 
1.在項目的解決方案中,添加類庫ERPFrame.Model

 

2.在類庫項目中 添加實體模型和數據上下文

其中 TopBaseModel是基類,用於生成唯一標識Guid
 1 public class TopBaseModel
 2     {
 3         private Guid _id;
 4         public Guid ID {
 5             get {
 6                 if (_id == Guid.Empty) {
 7                     _id = Guid.NewGuid();
 8                 }
 9                 return _id;
10             }
11             set {
12                 _id = value;
13             }
14         }
15     }
View Code
BaseModel繼承TopBaseModel,生成創建人,創建日期,修改人,修改日期
 1 using System.ComponentModel.DataAnnotations;
 2 public class BaseModel:TopBaseModel
 3     {
 4         [Display(Name ="創建時間")]
 5         public DateTime? CreateTime { get; set; }
 6         [Display(Name ="創建人")]
 7         [StringLength(50, ErrorMessage = "{0}最多輸入{1}個字符")]
 8         public string CreateBy { get; set; }
 9         [Display(Name = "修改時間")]
10         public DateTime? UpdateTime { get; set; }
11         [Display(Name = "修改人")]
12         [StringLength(50, ErrorMessage = "{0}最多輸入{1}個字符")]
13         public string UpdateBy { get; set; }
14     }

Frame_User實體模型,繼承BaseModel

 1 using System.ComponentModel.DataAnnotations;
 2 public class Frame_User:BaseModel
 3     {
 4         [Display(Name ="用戶")]
 5         [StringLength(50, ErrorMessage = "{0}最多輸入{1}個字符")]
 6         public string UserName { get; set; }
 7         [Display(Name = "角色名")]
 8         [StringLength(50, ErrorMessage = "{0}最多輸入{1}個字符")]
 9         public string RoleName { get; set; }
10     }

ERPFrameDBContext數據上下文

1 public class ERPFrameDBContext : DbContext
2     {
3         public ERPFrameDBContext(DbContextOptions<ERPFrameDBContext> options) :  base(options)
4         {
5         }
6     
7         public DbSet<Frame_User> Frame_User { get; set; }
8     }

3. 項目文件配置

(1)“appsettings.json”添加配置項,數據庫連接字符串

1 "ConnectionStrings": {
2     "todoContext": "Server=.;DataBase=ERPFrame;uid=sa;pwd=123456"
3   },

(2)“Startup.cs”依賴注入 讀取上一步配置的數據庫字符串信息,這里的 ERPFrameDBContext即上面的 數據上下文
  services.AddDbContext<ERPFrameDBContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("todoContext")));

 

如上所有配置完成后,重新編譯成功后,在控制台進行數據庫遷移 :

(1)執行“Add-Migration 版本信息”,如下圖
 
(2)執行成功后,在類庫項目中會顯示對應的數據庫遷移記錄和快照

 

(3)執行“update-database”,同步表結構,在數據庫便能看到對應的表
 
注:
可能會遇到的問題:
  Both Entity Framework 6.x and Entity Framework Core commands are installed. The Entity Framework 6 version is executing. You can fully qualify the command to select which one to execute, 'EntityFramework\Update-Database' for EF6.x and 'EntityFrameworkCore\Update-Database' for EF Core.
解決方法:
EntityFrameworkCore\Add-Migration InitialDb
EntityFrameworkCore\Update-Database


免責聲明!

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



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