2

まったく同じプロパティを持つ 2 つのエンティティがあります。

public class Oil
{
    public Guid Id { get; set; }
    public string Title { get; set; }
    public int Price { get; set; }
    public int Ammount { get; set; }
}

public class Filter
{
    public Guid Id { get; set; }
    public string Title { get; set; }
    public int Price { get; set; }
    public int Ammount { get; set; }
}

質問:

1)どうにかしてそれらを1つのテーブルに保存できますか? もしそうなら、どのように?

2) または、継承を実装する必要がありますか? では、どのタイプでしょうか?

編集:

私の場合、これら 2 つのエンティティはまったく同じであり、将来的に異なるプロパティを持つことはありません。

Table-per-Hierarchy アプローチを実装しましたが、別の問題があります
(オイルとフィルターのコレクションを持つ別のタイプがあります)。

public class Warehouse
{
    public Guid Id { get; set; } 
    public ICollection<Filter> Filters { get; set; }
    public ICollection<Oil> Oils { get; set; }
}

そのため、データベースを作成するときに、その中にフィールドを取得Warehouse_Idします。Warehouse_Id1Oil クラスと Filter クラスにプロパティを持たせたくないのですがWarehouse、db テーブルで Warehouse ID のフィールドを 1 つだけ取得するにはどうすればよいですか?

OilFilterBase クラスのプロパティとして WarehouseId を含めると、データベース テーブルに 3 つの Warehouse_id が取得されます。

ps私もDbSet<Oil>ありDbSet<Filter>、私の中にContextあり、持っていませんDbSet<OilFilterBase>

4

1 に答える 1