C# lambda 提取单行字符串值

发布于 2024-09-11 11:48:07 字数 282 浏览 3 评论 0原文

想要从数据库中查找表的列中提取文本值。 EL 是我的数据库的实体。当前代码:

var QTypes = EL.ElogQueryType.Where<ElogQueryType>( eqt=> eqt.ID == queryTypeID);                       
string qType = QTypes.First().QueryType; 

当我拉 .Select(... 时,我得到一个列表,所以出了问题。

Want to extract the text value from a lookup table's column in a db. EL is the entity for my db. Current code :

var QTypes = EL.ElogQueryType.Where<ElogQueryType>( eqt=> eqt.ID == queryTypeID);                       
string qType = QTypes.First().QueryType; 

I get a list when I just pull .Select(... so something is wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒废 2024-09-18 11:48:07

如果您知道自己只会得到一件物品,那么您应该能够这样做:

var QTypes = EL.ElogQueryType.Where(eqt=> eqt.ID == queryTypeID).Single().QueryType;

如果您不确定是否会得到一件物品或什么都得不到,请使用 SingleOrDefault()

如果您只想要第一个,因为您期望有很多记录:

var QTypes = EL.ElogQueryType.First(eqt=> eqt.ID == queryTypeID).QueryType;

如果您不知道是否会得到任何内容,则同样适用,请使用 FirstOrDefault

You should be able to just do if you know you will be just getting one item:

var QTypes = EL.ElogQueryType.Where(eqt=> eqt.ID == queryTypeID).Single().QueryType;

If you are not sure if you will get one or nothing use SingleOrDefault().

If you just want the first since you are expecting many records do:

var QTypes = EL.ElogQueryType.First(eqt=> eqt.ID == queryTypeID).QueryType;

Same applies if you don't know if you will get anything, use FirstOrDefault.

苦笑流年记忆 2024-09-18 11:48:07

目前尚不清楚出了什么问题,因为您当前的查询应该给出您想要的内容。但是,您也可以使用带有谓词的 First 重载:

string qType = EL.ElogQueryType.First(eqt => eqt.ID == queryTypeID)
                               .QueryType;

您说“当 [you] pull .Select(” 时获得一个列表”,但并不清楚您的意思。您还没有' t 说你已经指定的代码有什么问题

(正如 Kelsey 所说,还有 First 的替代方案:FirstOrDefaultSingleOrDefaultSingle。如果您愿意的话,甚至可以是Last。)

It's not clear what's wrong, as your current query should give you what you're after. However, you can also use the overload of First which takes a predicate:

string qType = EL.ElogQueryType.First(eqt => eqt.ID == queryTypeID)
                               .QueryType;

You say you "get a list when [you] pull .Select(" but it's not really clear what you mean. You haven't said what's wrong with the code you've already specified.

(As Kelsey says, there are alternatives to First: FirstOrDefault, SingleOrDefault, Single and even Last should you wish.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文