0

共通の基本クラスを共有する 3 つのエンティティがあります。各エンティティには、コンテキスト用の独自の Map クラスがあり、問題なくロードされます。各エンティティには異なる主キー名があり、基本クラスで名前を変更して、同じプロパティ名を使用しながら 3 つのエンティティのジェネリック メソッドを使用できるようにします。

たとえば、データベースにdb.Vehicle.Where(v => v.VehicleID < 100)移動すると、すべてが正常にマップされ、 とは異なる DB 列名に変換されますVehicleID

問題は、私が今反対方向に行きたいと思っていることです。たとえば、私は文字列を持っているかもしれません"Length"が、あるテーブルではそうかもしれませんLength1し、別のテーブルではそうかもしれませんLength2。モデルビルダーで使用したのと同じマッピングを使用して、基本クラスの ( ) プロパティに"Length"基づいて対応する値に変換できるようにしたいと考えています。v => v.Length

これがどのように達成されるかについて誰かアイデアがありますか?

4

1 に答える 1

0

この流れるような API を既に試してもうまくいかなかった場合は、プロパティを仮想として宣言することをお勧めします。

modelBuilder.Entity<ConcreteClass1>()
.Property(f => f.Length)
                .HasColumnName("Length1");

modelBuilder.Entity<ConcreteClass2>()
.Property(f => f.Length)
                .HasColumnName("Length2");
于 2013-05-22T10:32:31.473 に答える