我是 LINQ 的新手,需要一些查询帮助。
我需要所有来自 (tblResources) 的 资源 属于 Anonymous 和 公共(public) ResourceGroups (tblResourceGroups)。此外,我还需要属于 currentUser 所属的任何 ResourceGroups 的所有 资源 。
如果 currentUser 没有登录(currentUser == null),那么只有 属于 匿名 的资源 和 公共(public) ResourceGroups 应该返回
注意:我的数据模型不包含 tblResourceAccess 的实体。我不确定为什么在创建模型时没有添加这个实体。
string currentUser = IdentityHelper.GetUserIdFromRequest(Context.Request);
var result = from r in DbContext.Resources
where r.Active == true // && r.ResourceGroups?????
select new
{
ResourceTypeName = r.ResourceType.Name,
Name = r.Name,
Version = r.Version,
Description = r.Description,
Path = r.Path,
Active = r.Active
};
最佳答案
tblResourceAccess
被 EF 抽象掉,ResourceGroups
属性被添加到 Resource
表中以提供功能。使用这种关系,我们可以拼凑以下查询:
from r in DBContext.Resources.ToList()
where (currentUser == null
&& ("anonymous,public").Contains(
r.ResourceGroups.Name.ToLower()))
|| (currentUser != null)
select new
{
ResourceTypeName = r.ResourceType.Name,
Name = r.Name,
Version = r.Version,
Description = r.Description,
Path = r.Path,
Active = r.Active
};
关于c# - 使用 Linq 查询的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34315043/