zoukankan      html  css  js  c++  java
  • CodeFrist基础

    Code First(代码先行)。它思想就是先定义模型中的类,再通过这些类生成数据库。这种开发模式适合于全新的项目,它使得我们可以以代码为核心进行设计而不是先构造数据库。

    EF中创建数据库的表必须要有主键~!否则 将不成功。

    首先我们创建3个实体类:

    SysPermissonInfor.cs

     1     public class SysPermissonInfor
     2     {
     3         public SysPermissonInfor() {
     4 
     5         }
     6 
     7         /// <summary>
     8         /// 菜单权限编号
     9         /// </summary>
    10         [Key]
    11         [DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
    12         public int id { get; set; }
    13         /// <summary>
    14         /// 父菜单权限编号
    15         /// </summary>
    16         [Required] //非空声明
    17         public int parentId { get; set; }
    18         /// <summary>
    19         /// 菜单名称
    20         /// </summary>
    21         [StringLength(50)]  //最大长度
    22         [Required] //非空声明
    23         public string menuName { get; set; }
    24         /// <summary>
    25         /// 区域名
    26         /// </summary>
    27         [StringLength(50)]  //最大长度
    28         public string areaName { get; set; }
    29         /// <summary>
    30         /// 控制器名
    31         /// </summary>
    32         [StringLength(50)]  //最大长度
    33         public string controllerName { get; set; }
    34         /// <summary>
    35         /// 方法名
    36         /// </summary>
    37         [StringLength(50)]  //最大长度
    38         public string actionName { get; set; }
    39         /// <summary>
    40         /// 图标类名
    41         /// </summary>
    42         [StringLength(50)]  //最大长度
    43         public string iconClassName { get; set; }
    44         /// <summary>
    45         /// 备注
    46         /// </summary>
    47         [StringLength(200)]  //最大长度
    48         public string remarkContent { get; set; }
    49         /// <summary>
    50         /// 创建时间
    51         /// </summary>
    52         public Nullable<System.DateTime> addTime { get; set; }
    53         /// <summary>
    54         /// 排序标记
    55         /// </summary>
    56         public Nullable<int> sortFlag { get; set; }
    57         /// <summary>
    58         /// 隐藏标记
    59         /// </summary>
    60         public Nullable<int> delFlag { get; set; }
    61 
    62         public virtual ICollection<SysRoleInfor> sysRoleInfor { get; set; }
    63     }
    View Code

    SysRoleInfor.cs

     1     public class SysRoleInfor
     2     {
     3         public SysRoleInfor() {
     4 
     5         }
     6 
     7         /// <summary>
     8         /// 角色编号
     9         /// </summary>
    10         [Key]
    11         [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    12         public int id { get; set; }
    13         /// <summary>
    14         /// 角色名称
    15         /// </summary>
    16         [StringLength(50)]  //最大长度
    17         [Required] //非空声明
    18         public string roleName { get; set; }
    19         /// <summary>
    20         /// 角色说明
    21         /// </summary>
    22         [StringLength(100)]  //最大长度
    23         public string roleRemark { get; set; }
    24         /// <summary>
    25         /// 录入时间
    26         /// </summary>
    27         public Nullable<System.DateTime> addTime { get; set; }
    28         /// <summary>
    29         /// 隐藏标记
    30         /// </summary>
    31         public Nullable<int> delFlag { get; set; }
    32 
    33         /// <summary>
    34         ///多个用户可以对应一个角色
    35         /// </summary>
    36         public virtual ICollection<SysUserInfor> sysUserInfor { get; set; }
    37         /// <summary>
    38         /// 一个权限对应一个角色
    39         /// </summary>
    40         public virtual SysPermissonInfor sysPermissonInfor { get; set; }
    41 
    42     }
    View Code

    SysUserInfor.cs

    public class SysUserInfor
        {
            public SysUserInfor() {
    
            }
    
            /// <summary>
            /// 操作员编号 自增
            /// </summary>
            [Key]
            [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
            public int id { get; set; }
            /// <summary>
            /// 操作员帐号
            /// </summary>
            [StringLength(50)]  //最大长度
            [Required] //非空声明
            public string userAccount { get; set; }
            /// <summary>
            /// 操作员密码
            /// </summary>
            [StringLength(32)]  //最大长度
            [Required] //非空声明
            public string userPwd { get; set; }
            /// <summary>
            /// 姓名
            /// </summary>
            [StringLength(20)]  //最大长度
            [Required] //非空声明
            public string userRealName { get; set; }
            /// <summary>
            /// 性别 0:女 1:男
            /// </summary>
            public Nullable<int> userSex { get; set; }
            /// <summary>
            /// 联系方式
            /// </summary>
            [StringLength(50)]  //最大长度
            public string userPhone { get; set; }
            /// <summary>
            /// 备注说明 长度500
            /// </summary>
            [StringLength(500)]  //最大长度
            public string userRemark { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public Nullable<System.DateTime> addTime { get; set; }
            /// <summary>
            /// 隐藏标记 0:正常 1:隐藏
            /// </summary>
            public Nullable<int> delFlag { get; set; }
    
            /// <summary>
            ///一个用户对应一个角色
            /// </summary>
            public  SysRoleInfor sysRoleInfor { get; set; }
        }
    View Code

    其次创建一个DemoDbContext类

     1 public class DemoDbContext : DbContext
     2     {
     3         public DemoDbContext()
     4              : base("name=ConncodeFirst")
     5         {
     6             //数据库不存在则生成数据库
     7             Database.SetInitializer<DemoDbContext>(new CreateDatabaseIfNotExists<DemoDbContext>());
     8 
     9         }
    10         public DbSet<SysUserInfor> SysUserInfor { get; set; }
    11         public DbSet<SysRoleInfor> SysRoleInfor { get; set; }
    12         public DbSet<SysPermissonInfor> SysPermissonInfor { get; set; }
    13 
    14         protected override void OnModelCreating(DbModelBuilder modelBuilder)
    15         {
    16             base.OnModelCreating(modelBuilder);
    17         }
    18 
    19     }
    View Code

    在mvc的Web.config里的configuration下增加数据库连接:

      <connectionStrings>
        <add name="ConncodeFirst" connectionString="server=localhost;uid=sa;pwd=123456;database=CodeFirst_Task" providerName="System.Data.SqlClient"/>
      </connectionStrings>

    再创建控制器,运行已生成数据库

    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    PS后期合成,你和大神的差距就这5步!
    欧几里得算法:从证明等式gcd(m, n) = gcd(n, m mod n)对每一对正整数m, n都成立说开去
    谜题:过桥问题
    《世界是数字的》读书笔记第一部分_硬件篇
    完全偶图K(3,3)与完全图K5是否存在平面表示
    Dijkstar算法的数学原理
    LeetCode 141. Linked List Cycle
    LeetCode 155. Min Stack
    LeetCode 160. Intersection of Two Linked Lists
    LeetCode 165.Compare Version Numbers
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/9705103.html
Copyright © 2011-2022 走看看