0

次のコードがあります。

public class MyContext:DbContext
{
    DbSet<ABFoo> ABFoo { get; set; }
    DbSet<CDFoo> CDFoo { get; set; }
}

ABFoo と CDFoo は同じメンバーを持つクラスです。私は今、このクエリを持っています:

var t = context.ABFoo.Where(a => a.ID == 10);

このようにABFooテーブルを動的に変更したい

var t = context.ABFoo.Where(a => a.ID == 10).OnThePrefixTable("CD");

ABFoo テーブルでクエリを実行しても、CDFoo テーブルに切り替える必要があります。ExpressionVisistors を使用して「オブジェクト」を変更する必要があることはわかっていますが、どうすればよいかよくわかりません。本当にありがとうございました!

4

1 に答える 1

1

AutoMapper https://github.com/AutoMapper/AutoMapperのようなライブラリを使用できます

で初期化します

Mapper.CreateMap<ABFoo, CDFoo>();

と使用

var cdFooList = Mapper.Map(context.ABFoo.SingleOrDefault(a => a.ID == 10), new CDFoo());

またはリストを返す場合

var cdFoo = Mapper.Map(context.ABFoo.Where(a => a.Id == 10).ToList(), new List<CDFoo>());
于 2012-05-24T13:49:38.657 に答える