gpt4 book ai didi

c# - 使用 LINQ 填充具有单个列值的字符串

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

我是 C# 和 LINQ 的新手,希望在正确的方向上有一点插入。

首先,我有一个 Overrides SQL 表(和相应的 EF DB 上下文),它具有类型、值和覆盖值。这个想法是,对于特定类型(“类型”)的覆盖,代码可以检查特定值并查看是否存在应该改用的覆盖值。

var branchOverrides = overridesSqlContext.Overrides
.Where(q => q.Type == "Branch Override")
.Select(s => new
{
s.Value,
s.OverrideValue
});

在这种情况下,我想要“分支覆盖”类型的不同覆盖值的列表。从那里,我希望能够在我的代码中的给定点检索特定的覆盖值。我如何查询我创建的 branchOverrides 变量才能说出类似以下内容:

string readingOverride = select OverrideValue from branchOverrides where Value = "Reading"

我的代码需要能够在不同点读取不同分支的各种覆盖值,并且能够在任何点查询 branchOverrides 变量似乎是理想的方法。

感谢您对此提供的任何帮助。

最佳答案

您可以使用 Single()在您拥有的查询对象上:

string readingOverride = branchOverrides
.Single(bo => bo.Value == "Reading")
.OverrideValue;

如果条目不存在,这将引发异常,因此您可能想使用 SingleOrDefault而是检查是否有空返回。

另请注意 branchOverrides这里的对象是一个 IQueryable<>这意味着每次您使用它时,它都会向数据库发送一个查询。您可能希望通过添加 .ToList() 将其具体化到本地列表中在Select(...)之后.或者,您可能需要考虑缓存此数据,尤其是在需要频繁使用的情况下。

关于c# - 使用 LINQ 填充具有单个列值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54112730/

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