2
select * form autor
inner join (carte inner join carte_autor using id_carte)
using id_autor
group by id_autor;
如何使用LINQ編寫此代碼?如何將SQL轉錄爲LINQ
謝謝。
select * form autor
inner join (carte inner join carte_autor using id_carte)
using id_autor
group by id_autor;
如何使用LINQ編寫此代碼?如何將SQL轉錄爲LINQ
謝謝。
如果您使用設計器創建DataContext並且具有適當定義的外鍵,則這些屬性應顯示爲您的實體類(實體或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);
注意,這將挑選出一個匿名類型。我發現通常在進行連接時,我最終會選擇屬性的一個子集成爲匿名(有時是命名的)類型,而不是構成連接的實際實體。這就是我以這種方式展示它的原因。當然,您可以保留全部對象並相應地調整選擇/組。