C# 从“联接”查询组合实体对象
我有一个Linq查询,我试图简化它:C# 从“联接”查询组合实体对象,c#,entity-framework,C#,Entity Framework,我有一个Linq查询,我试图简化它: List<A> LR = (from a in ent.A join b in ent.B on a.ID equals b.idarticle join c in ent.C on b.idB equals c.id select new A()
List<A> LR = (from a in ent.A
join b in ent.B on a.ID equals b.idarticle
join c in ent.C on b.idB equals c.id
select new A()
{ name=a.name, surname = c.surname
}).toList();
简单地说,我需要通过交叉表B从表C中获取一个a字段,这样a中的“名称”和C中的“姓氏”组成一个新的a
但我无法构建实体类型A。。。虽然匿名类型没问题,但有可能得到它吗?我知道我需要一个新的类类型并填充它,但这是更短的。
谢谢
Saverio该错误可能与实体框架中的限制有关。所以您可以让ef返回匿名对象,然后将其转换为列表
我想避免重复通过匿名30个字段,但在这一点上,我认为这是必要的。。。我只是担心性能,客户在与sql控制台比较时会打电话给您。。。谢谢
List<A> LR = (from a in ent.A
join b in ent.B on a.ID equals b.idarticle
join c in ent.C on b.idB equals c.id
select new
{ name=a.name, surname = c.surname
})toList().Select(anon => new A() { name=anon.name, surname = anon.surname });