首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求解 使用EF 发现只创建了数据库,木有创建表,该如何处理

2012-06-17 
求解 使用EF 发现只创建了数据库,木有创建表Menu.csC# codeusing Systemusing System.Collections.Generi

求解 使用EF 发现只创建了数据库,木有创建表
Menu.cs

C# code
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; }    }}


Function.cs
C# code
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; }    }}


User.cs
C# code
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; }    }} 



UserFunction.cs
C# code
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; }    }}



数据库上下文
C# code
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();            }        }    }} 




请大伙给看看,这有问题么?为什么只创建了数据库而没有表。。

[解决办法]
代码太长,不如先说说你的想法?

热点排行