Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改某些数据的布尔值,其中date==DateTime.Today_C#_Asp.net Mvc_Linq_Entity Framework 4 - Fatal编程技术网

C# 更改某些数据的布尔值,其中date==DateTime.Today

C# 更改某些数据的布尔值,其中date==DateTime.Today,c#,asp.net-mvc,linq,entity-framework-4,C#,Asp.net Mvc,Linq,Entity Framework 4,我正在使用mvc5开发一个应用程序,希望当我加载一个页面时,它会检查数据的datetime是否等于表中的datetime.Today,如果是,它会将布尔值设置为true public ActionResult Index() { Detail v = db.Details.Single(emp => emp.DateExpired.Value.Equals( DateTime.Today)); v.Expire = true; db.SaveChanges();

我正在使用mvc5开发一个应用程序,希望当我加载一个页面时,它会检查数据的datetime是否等于表中的
datetime.Today
,如果是,它会将布尔值设置为true

public ActionResult Index()
{
    Detail v = db.Details.Single(emp => emp.DateExpired.Value.Equals( DateTime.Today));
    v.Expire = true;
    db.SaveChanges();
    return View();
}
它给了我这个错误

因为此日期等于日期时间的日期不止一个。今天

如何将这种可能性考虑在内?

Single()
在只希望返回一个结果的情况下工作,并在找到匹配项时抛出错误。发件人:

返回序列中唯一的元素,如果序列中没有一个元素,则引发异常

对于您的情况,您应该使用
First()
FirstOrDefault()

当未找到匹配项时,
FirstOrDefault
将返回null

编辑:
如果要在所有匹配项上应用逻辑,应使用Where()

使用Where子句,而不是单个。然后对返回的细节对象的可枚举项使用foreach。然后save.OP询问如何将此应用于更多的数据,而这些数据的日期等于DateTime.Today,因此a
.Where()
required@StephenMuecke谢谢,我想这部分已经被掩盖了
  public ActionResult Index()
  {
    foreach (var r in db.Details.Where(emp => emp.DateExpired.HasValue && emp.DateExpired.Value == DateTime.Today))
    {
        r.Expire = true;
    }
    db.SaveChanges();
    return View();
  }