我是新來的LINQ,所以如果這是一個簡單的答案,我很抱歉。我試圖做一個SQL連接,並根據下面的代碼我已經看到了SO和其他地方:LINQ to SQL加入
var query = from e in db.Events
join ec in db.EventCategories on e.ID equals ec.EventID
join c in db.Categories on ec.CategoryCode equals c.CategoryCode
join ep in db.EventParticipants on e.ID equals ep.EventID
join p in db.Participants on ep.ParticipantCode equals p.ParticipantCode
select new { e, ec, c, ep, p };
此執行罰款,當我運行調試,我可以擴大對象,並查看該查詢成功運行。但是,當我嘗試執行query.ToList()時,我無法將其轉換成任何可用的東西,因爲它說query.ToList()返回的列表是System.Collections.Generic.List。
方法2: 根據我自己的想法我試圖創建以下結構:
public struct CalendarItem
{
public Event e;
public EventCategory ec;
public Category c;
public EventParticipant ep;
public Participant p;
public CalendarItem(Event E, EventCategory EC, Category C, EventParticipant EP, Participant P)
{
e = E;
ec = EC;
c = C;
ep = EP;
p = P;
}
}
然後修改LINQ命令如下:
var query = from e in db.Events
join ec in db.EventCategories on e.ID equals ec.EventID
join c in db.Categories on ec.CategoryCode equals c.CategoryCode
join ep in db.EventParticipants on e.ID equals ep.EventID
join p in db.Participants on ep.ParticipantCode equals p.ParticipantCode
select new CalendarItem(e, ec, c, ep, p);
在Visual Studio這個檢查它允許我編譯和一切看起來不錯(即我可以遍歷CalendarItems的列表),但我得到了query.ToList()的運行時錯誤:成員'e'沒有支持的SQL轉換。
謝謝!這工作完美 – Kyle 2009-12-09 15:21:04