Asp.net
使用 Linq to SQL 返回單個值
我正在學習 Linq to SQL,但我無法掌握它。我試圖用 Linq 查詢在 C# 中簡單地返回一個(布爾)值。
我想查看故事的所有者是否希望在添加新評論時發送電子郵件通知。我希望包含 Linq to SQL 的方法返回一個布爾值。
public bool NotifyOnComment(string username){ var notify = (from s in db.AccountSettings where s.UserName == username select s.NotifyOnComment).DefaultIfEmpty(false); // clueless }更新:
我現在正在執行以下操作:
var notify = (from s in db.AccountSettings where s.UserName == username select s.NotifyOnComment).SingleOrDefault(); return (bool)notify;
Linq,預設情況下總是返回集合。如果您需要單個值,則可以應用
.Single()、.SingleOrDefault()或.First()或.FirstOrDefault()方法。他們的工作略有不同。
Single()並且SingleOrDefault()只有在結果中有確切或最多一條記錄時才有效。First()並且FirstOrDefault()會工作,即使有更多的結果。如果
*OrDefault()結果不包含任何記錄,則變體將返回該類型的預設值。
var notify = (from s in db.AccountSettings where s.UserName == username select s.NotifyOnComment).DefaultIfEmpty(false).First(); //notify will either hold a bool or the AccountSettings object so return (!(notify == false)); // Thanks Nick. Amazing what you'll do in a hurry.