從零開始寫C# MVC框架之--- 資料庫表設計
阿新 • • 發佈:2019-02-20
怎麼在專案中使用Code First?
1、設計好資料庫表實體類,欄位--繫結對應屬性(是否非空,長度限制等),繫結到上下文基類中
2、使用Migrations遷移報告,把表生成到資料庫中
拿專案中的使用者表做演示:
詳細操作如下,
1.1、在Zy.Xn.Model專案下新建System資料夾,代表系統表,業務表放在Business下,把業務和系統框架本身區分開,接著在System下右鍵新增 User 類
using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace Zy.Xn.Model.System { /// <summary> /// 使用者 /// </summary> public class User : BaseModel { /// <summary> /// 使用者姓名 /// </summary> [MaxLength(50)] public string UserName { get; set; } /// <summary> /// 使用者編號 /// </summary> [MaxLength(50)] public string UserNumber { get; set; } /// <summary> /// 登入帳號 /// </summary> [Required] [MaxLength(30)] public string LoginUserName { get; set; } /// <summary> /// 登入密碼 /// </summary> [Required] [MaxLength(60)] public string LoginPassword { get; set; } /// <summary> /// 使用者性別 /// </summary> public UserSexs Sex { get; set; } /// <summary> /// 使用者狀態:禁止、正常 /// </summary> [Required] [DefaultValue(UserStates.Normal)] public UserStates State { get; set; } /// <summary> /// 是否刪除 /// </summary> public bool IsDel { get; set; } public enum UserSexs { /// <summary> /// 男 /// </summary> [Description("男")] Man = 0, /// <summary> /// 女 /// </summary> [Description("女")] Woman = 1 } public enum UserStates { /// <summary> /// 正常 /// </summary> [Description("正常")] Normal = 0, /// <summary> /// 禁止 /// </summary> [Description("禁止")] Forbidden = 1 } /// <summary> /// 部門編號 /// </summary> public int DeptId { get; set; } /// <summary> /// 排序欄位 /// </summary> public int SortIndex { get; set; } } }
1.2、在Zy.Xn.Entity 的 DataBaseContext 上下文基類中把表設定進去,只有設定到上下文中,使用Migrations遷移時才知道遷移那些表,上程式碼:
using System.Data.Entity; using Zy.Xn.Model.System; namespace Zy.Xn.Entity { public partial class DataBaseContext : DbContext { public DataBaseContext() : base("name=DataBase") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { Database.SetInitializer<DataBaseContext>(null); } #region 系統基礎表 /// <summary> /// 使用者表 /// </summary> public DbSet<User> Users { get; set; } #endregion } }
在ZyWeb--web.config和Zy.Xn.Entity--app.config下配置好資料庫連線
<connectionStrings>
<add name="DataBase" connectionString="Data Source=.;Initial Catalog=ZyCore;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
</connectionStrings>
好了,大部分工作已經完成,只要打遷移命令就可生成表了
工具--NuGet包管理器--程式包管理器控制檯--預設專案選擇Zy.Xn.Entity 上下文專案
新增遷移報告:add-migration 20160911
更新到資料庫:update-database
還不會?還需要截圖一步步操作?那麼請檢視這位仁兄的文章:成功不需要美學