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 回答