62,074
社区成员
发帖
与我相关
我的任务
分享
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();
}
}
}
}