我有一個名為ProductTypeId
的外鍵屬性的Product模型。但是,我沒有ProductType
模型。相反,我有一個TypeListItem
模型。我想告訴EF仍然創建一個從ProductTypeId
到TypeListItem
表中Id
的關係。
我想使用Entity Framework Core流暢的API來指定這個,但無法弄清楚如何。我相信我曾經使用過HasRequired
,但我不認為它可以在EF Core中使用。
以下是有問題的模型:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int ProductTypeId { get; set; }
}
public class TypeListItem
{
public int Id { get; set; }
public string Name { get; set; }
}
我相信我可能需要將TypeListItem
的導航屬性添加到Product
模型中以使其成為可能嗎?
在EF Core中,甚至沒有導航屬性也是可能的,因為HasXYZ
/ WithXYZ
方法都具有無參數重載(順便說一句,而不是XYZRequired
/ XYZOptional
,EF Core使用XYZOne
,可以與IsRequired()
結合使用)。
您現在的模型的流暢配置是:
modelBuilder.Entity<Product>()
.HasOne<TypeListItem>()
.WithMany()
.HasForeignKey(e => e.ProductTypeId);