gpt4 book ai didi

c# - 协助 Linq 查询

转载 作者:行者123 更新时间:2023-11-30 18:22:11 25 4
gpt4 key购买 nike

我是 LINQ 新手,在查询方面需要一些帮助。

我需要来自 (tblResources) 的属于AnonymousPublic 的所有Resources em> 资源组 (tblResourceGroups)。此外,我还需要属于 currentUser 所属的任何 ResourceGroups 的所有 Resources .

如果 currentUser 未登录(currentUser == null),则只有 Resources 属于 Anonymous 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
};

Entity Data Models

Database Tables

最佳答案

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com