1. 程式人生 > >從零開始寫C# MVC框架之--- 資料庫表設計

從零開始寫C# MVC框架之--- 資料庫表設計

怎麼在專案中使用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

還不會?還需要截圖一步步操作?那麼請檢視這位仁兄的文章:成功不需要美學