Entity Framework Core Fluent APIを使用して別の名前の外部キーをマッピングする

c# entity-framework entity-framework-core

質問

ProductTypeIdという外部キープロパティを持つProductモデルがあります。しかし、 ProductTypeモデルはありProductType 。代わりに、私はTypeListItemモデルを持っています。 ProductTypeIdからTypeListItemテーブルのIdに関係を作成するようEFに依頼したいとTypeListItemます。

私は、これを指定するためにEntity Framework Core Fluent APIを使用したいと思いますが、方法を理解することはできません。私はHasRequiredを使用していたと思いますが、EFコアでは使用できないと思います。

問題のモデルは次のとおりです。

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コアでは、 HasXYZ / WithXYZメソッドの両方にパラメータなしのオーバーロード( XYZRequired / XYZOptionalではなくbtw、EF CoreではIsRequired()と組み合わせることができるXYZOneを使用)があるため、ナビゲーションプロパティがなくても可能です。

モデルの流暢な構成は、今のところ次のようになります。

modelBuilder.Entity<Product>()
    .HasOne<TypeListItem>()
    .WithMany()
    .HasForeignKey(e => e.ProductTypeId);


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ