(Id, TypeListId, Name)
のモデルには、(Id, TypeListId, Name)
という名前のモデルがあり、多数のリストが含まれています。例えばエンティティフレームワーク:同じモデルの複数のナビゲーションプロパティが、移行の追加時にエラーを引き起こす
:
ProductType: Strong, Weak, Medium
ProductCategory: Category 1, Category 2, Category 3
私はこのようになります製品のモデルがあります:私は、移行を追加するために移動してdotnet ef database update
とき「私はエラーを取得し、しかし
public int Id {get; set;}
public string Name {get; set;}
public int ProductTypeId {get; set;}
public int ProductCategoryId {get; set;}
// Navigation Properties
public TypeListItem ProductType {get; set;}
public TypeListItem ProductCategory {get; set;}
を:
Introducing FOREIGN KEY constraint : FK_Product_TypeListItem_ProductCategoryId on table 'Product' may cause cycles or multiple cascade paths.
私も持っています彼は流暢なAPIを使用して次のように:
builder.Entity<Product>()
.Property(p => p.ProductTypeId)
.IsRequired();
builder.Entity<Product>()
.Property(p => p.ProductCategoryId)
.IsRequired();
私は同じオブジェクトを使用する2つのナビゲーションプロパティがあり、両方とも必要であると考えています。
推奨事項私のモデルに何か問題はありますか?
これはefコアにとって意味がありますか?
builder.Entity<Product>()
.HasOne(p => p.ProductType)
.WithOne().OnDelete(DeleteBehavior.Restrict);
builder.Entity<Product>()
.HasOne(p => p.ProductCategory)
.WithOne().OnDelete(DeleteBehavior.Restrict);
あなたは 'TypeListItem'のコードを表示することができますか? – Sampath
それには何もありません。 Just Id、TypeListId、およびNameプロパティ。 –