我有以下代码:
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并更改“对象”,但不知道该怎么办! 非常感谢你!
答案 0 :(得分: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>());