这里一个简单的模型流利的映射:出了错在EF 4.1代码第一次
public class Product1
{
public int Id { get; set; }
public double Price { get; set; }
public int CurrencyID { get; set; }
public Currency Currency { get; set; }
}
public class Product2
{
public int Id { get; set; }
public double Price { get; set; }
public int CurrencyID { get; set; }
public Currency Currency { get; set; }
}
public class Currency
{
public int Id { get; set; }
public string Name { get; set; }
public string ISO4217 { get; set; }
public string Symbol { get; set; }
}
正如你可以看到,货币仅仅是将两个不同的实体使用的名单,但如果我尝试运行这,它给了我一个错误,说这是无效的,因为可能导致多个层叠路径。
现在我正在努力思考,如何建模上OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product1>().HasRequired(p => p.Currency).WithMany().WillCascadeOnDelete(false);
modelBuilder.Entity<Product2>().HasRequired(p => p.Currency).WithMany().WillCascadeOnDelete(false);
}
但由于某些原因这一点,虽然产品被正确创建每当我尝试加载它,货币谈到空。
我在这种建模中做错了什么?
谢谢!
你可以写你的评论作为答案,并接受你自己的答案。阅读并查看其他人已经解决问题更容易。 – Slauma
我知道,但是因为我是新来的,所以我不能那样做,直到我获得10点声望点。这是一个愚蠢的规则,但这不是我的错。 –