使用Entity Framework Core Fluent API映射具有不同名稱的外鍵

c# entity-framework entity-framework-core

我有一個名為ProductTypeId的外鍵屬性的Product模型。但是,我沒有ProductType模型。相反,我有一個TypeListItem模型。我想告訴EF仍然創建一個從ProductTypeIdTypeListItem表中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);


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow