从零开始写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

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


相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页