eCo*_*rke 15 c# entity-framework dbcontext entity-framework-5
我在WinForms项目中使用EntityFramework 5.0版,.net 4.5.
我为我创建了2个重要的实体
public class Role
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public bool StockPermission { get; set; }
public bool ItemPermission { get; set; }
public bool OrderPermission { get; set; }
public bool PersonPermission { get; set; }
public bool StatisticPermission { get; set; }
}
public class Person
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public String Name { get; set; }
public String Nickname { get; set; }
public String Contact { get; set; }
public System.DateTime Created { get; set; }
public String Pincode { get; set; }
public virtual ICollection<Role> Role { get; set; }
public virtual Person Creator { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和dbContext类:
public class SusibarDbContext : DbContext
{
public DbSet<Entity.Role> Roles { get; set; }
public DbSet<Entity.Person> Persons { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//base.OnModelCreating(modelBuilder);
}
}
Run Code Online (Sandbox Code Playgroud)
拜托,你能帮我解决一下我需要添加到OnModelCreating(DbModelBuilder modelBuilder)功能中来定义人与角色之间的关系吗?
人可以有很多角色(但不能为空),不同的人可以有相同的角色.
人可以有一个"创造者"人(可以为空),不同的人可以拥有相同的"创造者"
如果你可以这么善良,请告诉我解决方案:-(
kla*_*sor 16
如果您想使用Fluent API,请从MSDN 查看此主题.您应该使用多对多关系,EF将创建一个表所需的表,当Person可以有多个角色和角色有很多人时.像这样的东西:
modelBuilder.Entity<Person>().HasMany(x => x.Roles).WithMany();
Run Code Online (Sandbox Code Playgroud)
您也可以在不使用Fluent API的情况下创建此关系.您应该ICollection<Person> Persons在Role类中创建导航属性,EF也将创建适当的表和关系.
| 归档时间: |
|
| 查看次数: |
56650 次 |
| 最近记录: |