select * form autor
inner join (carte inner join carte_autor using id_carte)
using id_autor
group by id_autor;
如何使用LINQ编写此内容?
感谢。
答案 0 :(得分:0)
如果您正在使用设计器创建DataContext并且已正确定义外键,则这些应在实体类(Entity或EntitySet)上显示为属性,具体取决于它是1-1还是1-many。如果没有指定外键,也可以在设计器中定义关系。
否则,您可以执行以下操作:
var carteAutors = db.Carte.Join( db.CarteAutor, (o,i) => o.ID_Carte == i.ID_Carte )
.Select( (o,i) => new { ID_Autor = i.ID_Autor, ...et al... } );
var q = db.Autors
.Join( carteAutors, (o,i) => o.ID_Autor == i.ID_Autor )
.Select( (o,i) => new { ID_Autor = o.ID_Autor, ...et al... )
.GroupBy( a => a.ID_Autor );
请注意,这将选择匿名类型。我发现通常在进行连接时,我最终选择属性的子集为匿名(或有时命名)类型,而不是包含连接的实际实体。这就是我用这种方式展示的原因。当然,您可以保留完整的对象并相应地调整select / groupby。