gpt4 book ai didi

c# - 将其结构化为一条语句?

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:04 25 4
gpt4 key购买 nike

我有一个数据库,其中包含一个一对多的外键,例如

Table {shop
[Id]
...}

Table {user
[Id]
[Shop_id]
[Archived]
}

我还有一个方法如下

public IEnumerable<shop> GetShopDetails(int shopId)
{
var foo = (from s in context.Shops
where s.Id = shopId
select s).ToList();

return foo;
}

因此,它将返回该商店的所有用户。大多数时候,我真的只想要未存档的用户。

有没有一种方法可以将其写入一个语句,这样我就可以传入 includeArchived 的第二个参数,并使用它来确定我是返回所有用户,还是只返回那些活跃的用户。

目前,我可以通过向我的商店对象添加一个返回用户子集的方法来使其工作,或者我可以加载商店,获取其 ID,然后创建一个单独的用户集合,其中包含适当的fk,但这两种方法对我来说似乎都有点笨拙。

最佳答案

只需有条件地添加另一个 Where 条件:

public IQueryable<user> GetShopUsers(int shopId, bool includeArchived = false)
{
var foo = from u in context.Users
where u.Shop_id = shopId
select u;

if(!includeArchived)
foo = foo.Where(u => !u.Archived);

return foo;
}

关于c# - 将其结构化为一条语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15501989/

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