嗯,我有這樣的: 局:有沒有其他方法可以使這個LINQ查詢工作?
public class Board
{
public int BoardID { get; set; }
public string BoardName { get; set; }
public string BoardDescription { get; set; }
public int PostCount { get; set; }
public int TopicCount { get; set; }
public bool IsVisibile { get; set; }
public Forum BelongToForum { get; set; }
public List<Board> Boards { get; set; }
public List<Topic> Topics { get; set; }
}
和論壇:
public class Forum
{
public int ForumID { get; set; }
public string ForumName { get; set; }
public string ForumDescription { get; set; }
public List<Board> Boards { get; set; }
}
和方法得到論壇用板:
public List<Forum> GetForums()
{
List<Forum> forums = new List<Forum>();
_ctx = new ForumContext();
forums = (from p in _ctx.Forums
select p).ToList();
List<Forum> returnForm = new List<Forum>();
foreach(Forum forum in forums)
{
List<Board> board = (from x in _ctx.Boards
where x.BelongToForum.ForumID == forum.ForumID
select x).ToList();
forum.Boards = board;
returnForm.Add(forum);
}
return returnForm;
}
它的工作如預期。但是,正如你所看到的,我正在使用三個列表和foreach循環。這對我來說看起來不太好。所以我有一個問題,是否有另一種方法來使它工作?
我想我應該建立另一個模型類,它將從連接或類似的東西收集nessesary數據。 但我想問的是還有其他方法可以做到嗎?
代碼優先。但說實話,這是我第一次做代碼。我對這個apporach的認識是非常基本的。 – 2011-05-08 18:41:49
而嘗試使用Lambda的第二個版本時出現錯誤: 「無法將lambda表達式轉換爲類型'string',因爲它不是委託類型」 猜測不適用於Code-First? – 2011-05-08 18:55:38
@ŁukaszBaran:確保在代碼文件中有'使用System.Data.Entity;',那麼你可以使用強類型的版本。 – BrokenGlass 2011-05-08 19:31:49