【发布时间】:2015-01-31 03:05:01
【问题描述】:
EF6 Code First 遇到了一点问题(在 MVC Web 应用程序中)。
在“AccountCircle”中对帐户进行分类的枚举:
public enum AccountType
{
Circle1,
Circle2,
Circle3,
Circle4,
Circle5
}
Accounts 的主类:
[Table("Accounts")]
public class AccountModel
{
public AccountModel()
{
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string Name { get; set; }
public string EMail { get; set; }
}
主要的公司模式
[Table("Companys")]
public class CompanyModel
{
public CompanyModel()
{
this.AccountCircle = new AccountCircleModel();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string Name { get; set; }
public int? idAccountCircle { get; set; }
public AccountCircleModel AccountCircle { get; set; }
}
单圈类:
[Table("AccountCircles")]
public class AccountCircleModel
{
public AccountCircleModel()
{
this.Member = new List<AccountCirleMemberModel>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public int idCompany { get; set; }
public CompanyModel Company { get; set; }
public List<AccountCirleMemberModel> Member { get; set; }
}
最后但并非最不重要的一点是帐户本身以及附加信息是什么类型的成员:
[Table("AccountCircleMember")]
public class AccountCirleMemberModel
{
public AccountCirleMemberModel()
{
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public AccountType Typ { get; set; }
public int idAccount { get; set; }
public virtual AccountModel Account { get; set; }
public int idAccountCircle { get; set; }
public AccountCircleModel AccountCircle { get; set; }
}
还有 DbContext
public class TestContext : DbContext
{
public TestContext()
: base()
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// modelBuilder Infos.....
base.OnModelCreating(modelBuilder);
}
#region Tables
public DbSet<AccountModel> Accounts { get; set; }
public DbSet<CompanyModel> Companys { get; set; }
public DbSet<AccountCircleModel> AccountCircles { get; set; }
#endregion
}
所以有一个公司,它有一个“AccountCircle”类型的可选属性(1:可选) 在 Accountcircle 中,有一个带有单独枚举的 Accounts List (AccountCirleMemberModel 1:many)
我尝试了数百种 modelBuilder 方法来为 EF6 提供必要的信息,但没有成功。 有人提示,给“受保护的覆盖无效 OnModelCreating”方法中的 DbModelBuilder 正确的关系数据?
提前非常感谢! 蒙特
【问题讨论】:
-
你到底需要什么?
标签: c# entity-framework