求解 使用EF 发现只创建了数据库,木有创建表
Menu.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel.DataAnnotations;namespace DataEntity{ [Table("Sys_Menu")] public class Menu { [Key] [Display(Name = "菜单编号")] [Column(Order = 0)] [Required(ErrorMessage = "菜单编号必须提供")] public int MenuID { get; set; } [Display(Name = "菜单名称")] [Column(Order = 1)] [Required(ErrorMessage = "菜单名称必须提供")] [StringLength(50, ErrorMessage = "不能超过50个字符")] public string MenuName { get; set; } [Display(Name = "排序号")] [Column(Order = 2)] [Required(ErrorMessage = "排序号必须提供")] [MaxLength(3, ErrorMessage = "排序号长度不能超过3位")] public int OrderCode { get; set; } [Display(Name = "访问地址")] [Column(Order = 3)] [StringLength(100, ErrorMessage = "访问地址不能超过100个字符")] public string Url { get; set; } [Display(Name = "父菜单")] [Column(Order = 4)] [Required(ErrorMessage = "父菜单必须提供")] public int ParentID { get; set; } /// <summary> /// 1个菜单有1个或多个功能点 /// </summary> public virtual ICollection<Function> Functions { get; set; } }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel.DataAnnotations;namespace DataEntity{ [Table("Sys_Function")] public class Function { /// <summary> /// 主键ID /// </summary> [Key] public int FunctionID { get; set; } /// <summary> /// 模块ID /// </summary> public int MenuID { get; set; } /// <summary> /// 功能编码 /// </summary> public string FunctionCode { get; set; } /// <summary> /// 功能名称 /// </summary> public string FunctionName { get; set; } /// <summary> /// 功能点对应的菜单实体 /// </summary> [ForeignKey("MenuID")] public virtual Menu Menu { get; set; } }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel.DataAnnotations;namespace DataEntity{ [Table("Sys_User")] public class User { [Key] [Display(Name = "用户编号")] [Column(Order = 0)] public int UserID { get; set; } [Display(Name = "用户名")] [Column(Order = 1)] [Required(ErrorMessage = "用户名必须提供")] [StringLength(50, ErrorMessage = "不能超过50个字符")] public string UserName { get; set; } [Display(Name = "用户姓名")] [Column(Order = 2)] [Required(ErrorMessage = "用户姓名必须提供")] [StringLength(50, ErrorMessage = "不能超过50个字符")] public string RealName { get; set; } [Display(Name = "密码")] [Column(Order = 3)] [Required(ErrorMessage = "登录密码必须提供")] [StringLength(50, ErrorMessage = "不能超过50个字符")] [DataType(DataType.Password)] public string Password { get; set; } [Display(Name = "性别")] [Column(Order = 4)] [Required(ErrorMessage = "性别必须提供")] [StringLength(1, ErrorMessage = "不能超过1个字符")] public string Sex { get; set; } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel.DataAnnotations;namespace DataEntity{ [Table("Sys_UserFunction")] public class UserFunction { /// <summary> /// 主键ID /// </summary> [Key] public int RelationID { get; set; } /// <summary> /// 用户ID /// </summary> public int UserID { get; set; } /// <summary> /// 功能ID /// </summary> public int FunctionID { get; set; } /// <summary> /// 用户ID对应的用户实体 /// </summary> [ForeignKey("UserID")] public virtual User User { get; set; } /// <summary> /// 功能点ID对应的功能点实体 /// </summary> [ForeignKey("FunctionID")] public virtual Function Function { get; set; } }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.Entity;using DataEntity;namespace DataAccess{ public class DataContext : DbContext { private readonly static string CONNECTION_STRING = "name=matrixkey"; public DataContext() : base(CONNECTION_STRING) { } static DataContext() { Database.SetInitializer<DataContext>(new DataInitializer()); } public DbSet<Menu> Sys_Menu { get; set; } public DbSet<User> Sys_User { get; set; } public DbSet<Function> Sys_Function { get; set; } public DbSet<UserFunction> Sys_UserFunction { get; set; } /// <summary> /// 对EF默认契约的修改写在这里 /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { } /// <summary> /// 数据库数据初始化 /// </summary> private class DataInitializer : CreateDatabaseIfNotExists<DataContext> { protected override void Seed(DataContext context) { var DefalutMenus = new List<Menu>{ new Menu { MenuID=1, MenuName ="系统配置",OrderCode=10,Url = "" ,ParentID = 0}, new Menu { MenuID=2, MenuName ="菜单管理",OrderCode=11,Url = "/Menu/Index" ,ParentID = 1}, new Menu { MenuID=3, MenuName ="组织机构",OrderCode=20,Url = "" ,ParentID = 0}, new Menu { MenuID=4, MenuName ="用户管理",OrderCode=21,Url = "/User/Index" ,ParentID = 3}, new Menu { MenuID=5, MenuName ="人事管理",OrderCode=21,Url = "/Staff/Index" ,ParentID = 3} }; DefalutMenus.ForEach(s => context.Sys_Menu.Add(s)); context.SaveChanges(); var DefalutUsers = new List<User>{ new User { UserID =1,UserName ="admin",RealName= "系统管理员",Password = "1",Sex="1" }, new User { UserID =2,UserName ="matrixkey",RealName= "落阳",Password = "1",Sex="0" } }; DefalutUsers.ForEach(s => context.Sys_User.Add(s)); context.SaveChanges(); var DefalutFunction = new List<Function> { new Function{MenuID=2,FunctionCode="M1-02-01",FunctionName="浏览"}, new Function{MenuID=4,FunctionCode="M1-04-01",FunctionName="浏览"}, new Function{MenuID=5,FunctionCode="M1-05-01",FunctionName="浏览"} }; DefalutFunction.ForEach(s => context.Sys_Function.Add(s)); context.SaveChanges(); var DefalutUserFunction = new List<UserFunction> { new UserFunction{UserID=1,FunctionID=1}, new UserFunction{UserID=1,FunctionID=2}, new UserFunction{UserID=1,FunctionID=3} }; DefalutUserFunction.ForEach(s => context.Sys_UserFunction.Add(s)); context.SaveChanges(); } } }}