我有一個名爲TypeListItem
的模型,其中有三個屬性(Id, TypeListId, Name)
,其中包含一堆列表。實體框架:來自同一模型的多個導航屬性導致添加遷移時出錯
例如:
ProductType: Strong, Weak, Medium
ProductCategory: Category 1, Category 2, Category 3
我有一個產品型號,看起來像這樣:
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;}
然而,當我去添加一個遷移,然後dotnet ef database update
「我得到一個錯誤:
Introducing FOREIGN KEY constraint : FK_Product_TypeListItem_ProductCategoryId on table 'Product' may cause cycles or multiple cascade paths.
我也有t他以下使用流利的API:
builder.Entity<Product>()
.Property(p => p.ProductTypeId)
.IsRequired();
builder.Entity<Product>()
.Property(p => p.ProductCategoryId)
.IsRequired();
我相信錯誤是因爲我有兩個導航屬性使用相同的對象,都是必需的。
有什麼建議嗎?我的模型有問題嗎?
這樣做對ef core有意義嗎?
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屬性。 –