从零开始写C# MVC框架之--- 数据库表设计

怎么在项目中使用Code First?

 1、设计好数据库表实体类,字段--绑定对应属性(是否非空,长度限制等),绑定到上下文基类中

 2、使用Migrations迁移报告,把表生成到数据库中

拿项目中的用户表做演示:

从零开始写C# MVC框架之--- 数据库表设计_第1张图片

详细操作如下,

1.1、在Zy.Xn.Model项目下新建System文件夹,代表系统表,业务表放在Business下,把业务和系统框架本身区分开,接着在System下右键新增 User 类

using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace Zy.Xn.Model.System
{
    /// 
    /// 用户
    /// 
    public class User : BaseModel
    {
        /// 
        /// 用户姓名
        /// 
        [MaxLength(50)]
        public string UserName { get; set; }

        /// 
        /// 用户编号
        /// 
        [MaxLength(50)]
        public string UserNumber { get; set; }

        /// 
        /// 登录帐号
        /// 
        [Required]
        [MaxLength(30)]
        public string LoginUserName { get; set; }

        /// 
        /// 登录密码
        /// 
        [Required]
        [MaxLength(60)]
        public string LoginPassword { get; set; }

        /// 
        /// 用户性别
        /// 
        public UserSexs Sex { get; set; }

        /// 
        /// 用户状态:禁止、正常
        /// 
        [Required]
        [DefaultValue(UserStates.Normal)]
        public UserStates State { get; set; }

        /// 
        /// 是否删除
        /// 
        public bool IsDel { get; set; }

        public enum UserSexs
        {
            /// 
            /// 男
            /// 
            [Description("男")]
            Man = 0,
            /// 
            /// 女
            /// 
            [Description("女")]
            Woman = 1
        }

        public enum UserStates
        {
            /// 
            /// 正常
            /// 
            [Description("正常")]
            Normal = 0,

            /// 
            /// 禁止
            /// 
            [Description("禁止")]
            Forbidden = 1
        }

        /// 
        /// 部门编号
        /// 
        public int DeptId { get; set; }
        
        /// 
        /// 排序字段
        /// 
        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(null);
        }


        #region 系统基础表
        /// 
        /// 用户表
        /// 
        public DbSet Users { get; set; }
        #endregion
    }
}

在ZyWeb--web.config和Zy.Xn.Entity--app.config下配置好数据库连接


    
好了,大部分工作已经完成,只要打迁移命令就可生成表了

工具--NuGet包管理器--程序包管理器控制台--默认项目选择Zy.Xn.Entity 上下文项目
添加迁移报告:add-migration 20160911 
更新到数据库:update-database

还不会?还需要截图一步步操作?那么请查看这位仁兄的文章:成功不需要美学


你可能感兴趣的:(从零开始写C#,MVC框架)