C# Linq表达式更改数据存储

C# Linq表达式更改数据存储,c#,.net,linq,entity-framework,linq-to-entities,C#,.net,Linq,Entity Framework,Linq To Entities,我有以下代码: public class MyContext:DbContext { DbSet<ABFoo> ABFoo { get; set; } DbSet<CDFoo> CDFoo { get; set; } } 我想用这种方式使ABFoo表进行日常更改 var t = context.ABFoo.Where(a => a.ID == 10).OnThePrefixTable("CD"); 即使在ABFoo表上执行查询,我也必须切换到CD

我有以下代码:

public class MyContext:DbContext
{
    DbSet<ABFoo> ABFoo { get; set; }
    DbSet<CDFoo> CDFoo { get; set; }
}
我想用这种方式使ABFoo表进行日常更改

var t = context.ABFoo.Where(a => a.ID == 10).OnThePrefixTable("CD");
即使在ABFoo表上执行查询,我也必须切换到CDFoo表。 我知道我必须使用ExpressionVisitor并更改“对象”,但我不知道该怎么做!
多谢各位

您可以使用像AutoMapper这样的库

将其初始化为

Mapper.CreateMap<ABFoo, CDFoo>();
或者如果你返回一个列表

var cdFoo = Mapper.Map(context.ABFoo.Where(a => a.Id == 10).ToList(), new List<CDFoo>());
var cdFoo=Mapper.Map(context.ABFoo.Where(a=>a.Id==10.ToList(),new List());

如果要将ABFoo中ID=10的数据放在表CDFoo中,我是否理解得很清楚?这可能是一个解决方案,因为我已经使用automapper了。但这样我将失去自动实体框架依赖项跟踪器。使用SaveChanges更新对象可能会导致错误。我想保留此修改更新并选择表达式!
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>());