Returning a single value with Linq to SQL(使用 Linq to SQL 返回单个值)
问题描述
我正在学习 Linq to SQL,但无法掌握它.我正在尝试使用 Linq 查询在 C# 中简单地返回单个(布尔值)值.
I'm learning Linq to SQL and I'm having trouble grasping it. I'm trying to simply return a single (boolean) value in C# with a Linq query.
我想看看故事的所有者是否希望在添加新评论时发送电子邮件通知.我希望包含 Linq to SQL 的方法返回一个布尔值.
I want to see if the owner of a story would like an email notification sent when new comments are added. I would like the method that contains the Linq to SQL to return a boolean value.
public bool NotifyOnComment(string username){
var notify = (from s in db.AccountSettings
where s.UserName == username
select s.NotifyOnComment).DefaultIfEmpty(false);
// clueless
}
更新:
我现在正在做以下事情:
I'm doing the following now:
var notify = (from s in db.AccountSettings
where s.UserName == username
select s.NotifyOnComment).SingleOrDefault();
return (bool)notify;
推荐答案
Linq,默认总是返回集合.如果您需要单个值,您可以应用 .Single()
, .SingleOrDefault()
或 .First()
或 .FirstOrDefault()
方法.
Linq, by default always returns collections. If you need a single value, you can apply the .Single()
, .SingleOrDefault()
or .First()
or .FirstOrDefault()
methods.
他们在做什么方面略有不同.Single()
和 SingleOrDefault()
仅在结果中有恰好或最多条记录时有效.First()
和 FirstOrDefault()
会起作用,即使有更多的结果.
They differ slightly in what they do. Single()
and SingleOrDefault()
will only work if there is exactly or at most one record in the result. First()
and FirstOrDefault()
will work, even if there are more results.
如果结果不包含记录,*OrDefault()
变体将返回类型的默认值.
The *OrDefault()
variants will return the default value for the type in case the result contained no records.
这篇关于使用 Linq to SQL 返回单个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Linq to SQL 返回单个值
基础教程推荐
- 从 VB6 迁移到 .NET/.NET Core 的最佳策略或工具 2022-01-01
- 当键值未知时反序列化 JSON 2022-01-01
- 如何使用OpenXML SDK将Excel转换为CSV? 2022-01-01
- C# - 如何列出发布到 ASPX 页面的变量名称和值 2022-01-01
- 使用 SED 在 XML 标签之间提取值 2022-01-01
- Page.OnAppearing 中的 Xamarin.Forms Page.DisplayAlert 2022-01-01
- C# - 将浮点数转换为整数...并根据余数更改整数 2022-01-01
- 覆盖 Json.Net 中的默认原始类型处理 2022-01-01
- 我什么时候应该使用 GC.SuppressFinalize()? 2022-01-01
- 创建属性设置器委托 2022-01-01