C# 从“联接”查询组合实体对象

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()

我有一个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()
                              { 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 });