ここに簡単なモデルがあります:
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は2つの異なるエンティティによって使用される単なるリストですが、これを実行しようとすると、複数のカスケードパスが発生する可能性があるため、これは無効であるというエラーが表示されます。
今私は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);
}
しかし、何らかの理由で、製品は正しく作成されていますが、ロードしようとすると、Currencyがnullになります。
このモデリングで何か間違ったことをしているのですか?
ありがとう!