【发布时间】:2018-02-07 10:40:50
【问题描述】:
当我运行网站时,我得到了这个错误:
System.InvalidOperationException: 'Nullable 对象必须有一个值。'
我有Duzenle 控制器,这包括以下代码:
[Authorize(Roles = "Sube")]
public ActionResult Duzenle()
{
var date = DateTime.Now.Date;
var kullanici = UserGetter.GetUser();
var subeId = kullanici.SubeId.Value; // exception is thrown here
var kasaRaporu = db.KasaRaporu
.Where(kr => kr.SubeId == subeId).ToList()
.Where(kr => kr.Tarih.Date == date).FirstOrDefault();
if (kasaRaporu != null)
{
return View(kasaRaporu);
}
kasaRaporu = KasaRaporuCreator.Create(subeId);
return View(kasaRaporu);
}
在这一行抛出异常:
var subeId = kullanici.SubeId.Value;
怎么了?
【问题讨论】:
-
显然,
kullanici.SubeId是null。为什么是null,如果不知道您的数据库,我们就无法判断。 -
@Emrah 如果
SubeId为空,你想做什么?如果.Value可以为空,为什么要调用它?如果您想将空值传递给.Where(kr.SubeId == subeId),则根本不要调用.Value。如果您不想执行查询,请使用if( kullanici.SubeId.HasValue){...}仅在有值时执行查询
标签: c# .net asp.net-mvc