这里有一个简单的模型:
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; }
}
如您所见,Currency 只是一个列表,将由两个不同的实体使用,但如果我尝试运行它,它会给我一个错误,说这是无效的,因为可能导致多个级联路径。
现在我想弄清楚如何在 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);
}
但是由于某种原因,尽管产品已正确创建,但每当我尝试加载它时,货币都会变为空。
我在这个建模中做错了什么?
谢谢!