2011-03-12 63 views

回答

0

是的。你已經基本上將SQL查詢翻譯成LINQ,並忘記了在LINQ中你可以導航導致自動連接的屬性(即user.Role)。

在告訴Linq to SQL來引導用戶角色(或者以其他方式:引入角色幷包含相關用戶)的同時獲取用戶會更簡單。這裏有一個鏈接,瞭解如何在不延遲加載的情況下執行此操作:http://www.singingeels.com/Blogs/Nullable/2008/10/27/EntityFramework_Include_Equivalent_in_LINQ_to_SQL.aspx

乾杯

+0

嗨, 是的,我忘了這一點:-)但是我不能從用戶身上一下子去角色 - 我從用戶那裏只能去用戶角色。感謝您的鏈接。我想我想保持懶惰的加載,但... – TheDude 2011-03-12 14:01:23

3

那麼,通過查詢數據庫使用直接的方法將工作。 但是,您完全繞過了會員資格及其提供的所有功能。

爲什麼不直接使用會員:

var roles = from MembershipUser u in Membership.GetAllUsers() 
      select new {user = u, 
      roles = Roles.GetRolesForUser(u.UserName)}; 

這樣,如果在未來的數據庫結構改變你的代碼仍然可以工作,你不需要知道實現。

您認爲如何?

PS:我沒有檢查會產生什麼樣的SQL的,所以如果你需要超強的性能仍可能會更好直來直去的DB

相關問題