[英]Use where in row collection in Entity Framework
我有以下課程:
每個新聞都有ListOfPostPermissions(1-many),每個PostPermission具有一個Role(1-1)。
我的名單RoleId
,我想所有的News
,其中PostPermission
的RoleId
是在列表RoleId
。
我使用以下代碼,但會引發錯誤:
var roles = _currentUserService.GetCurrentUserRoles(); // List<Guid>
return NewsList.Where(row => row.Permissions.Where(role=>roles.Contains( role.RoleId)).ToList()).ToList();
我收到這些錯誤:
無法將類型'System.Collections.Generic.List'隱式轉換為'bool'
無法將lambda表達式轉換為委托類型'System.Func',因為該塊中的某些返回類型不能隱式轉換為委托返回類型
我該怎么做 ?
您需要使用Any
內部,而不是Where
這樣的
return NewsList
.Where(row => row.Permissions.Any(role=>roles.Contains(role.RoleId)))
.ToList();
這是因為外部Where
期望謂詞,即返回bool
表達式。 第一個異常消息清楚地表明了這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.