嘗試在Linq查詢中使用導航屬性,但沒有得到任何結果。不知道爲什麼。使用帶導航屬性的Linq
我在實體框架中使用SQL Server中的標準簡單成員表。所以我把三個表格,AspNetUsers,AspNetRoles和AspNetUserRoles放到我的模型中(見下圖)
是的,我知道我可以使用角色/標識功能,我只是用這些表來試用這個LINQ QUERY,這些表格很方便使用
無論如何,我的目標是使用導航屬性來獲取給定用戶的角色。由於AspNetUserRoles沒有主鍵,因此不會作爲實體進入我的模型,所以這似乎是正確的選擇。我試着使用建議這裏提出:
Linq to entities navigation properties
下面的LINQ查詢返回0結果
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).ToList();
return result;
想也許我需要使用包含擴展,所以我想這一點,也將返回0結果
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).Include("AspNetUsers").ToList();
return result;
我知道我在做什麼錯行:
where r.AspNetUsers.Any(u => u.Id == UserId)
因爲如果我刪除它,當然會得到結果,但不是特定用戶的結果。
我試圖按照這裏的一個答案給出的建議是:
任何想法?
在此先感謝!
什麼是你真正想幹什麼?給出一些上下文,最好是一個或兩個示例模型。 – stybl
@stybl,編輯了這個問題。我希望這有助於澄清。謝謝! – xgp