我正在进行下面的查询以获取要查看的数据,但AccountMediaServerKey
表是否为空。模型在视图中抛出null异常错误。知道如何在没有数据从数据库中提取时检查模型是否为空
var MediaKey = (from p in db.AccountMediaServerKey
where p.Tagger == USID && p.TagTo == USID
select new MediaServerHomeModel
{
Stream=p.Stream,
Event = p.Event,
Status = p.Status
}).FirstOrDefault();
答案 0 :(得分:0)
你只需要做
If(MediaKey==null)
{
//do something
}
或者,如果你想在null时设置一个新对象,那么你会做
var obj = MediaKey ?? new MediaServerHomeModel();
返回obj查看
答案 1 :(得分:0)
方法FirstOrDefault
返回集合中的第一项或NULL
。因此,如果您的表为空,则变量MediaKey
将具有NULL值。如果要将其传递给视图,请确保在访问任何属性之前进行空检查。
@model MediaServerHomeModel
<h1>Index</h1>
@if(Model!=null)
{
<p>Model is not null</p>
<!-- Access Model safely now -->
}
您必须对其他引用类型属性执行相同操作以防止空引用异常。例如,如果Stream
属性是引用类型,则它可能为null。因此,在使用它之前进行空检查是安全的。
@if(Model!=null && Model.Stream!=null)
{
<p>Model.Stream is not null</p>
<!-- Access Model.Stream safely now -->
}
答案 2 :(得分:0)
if (MediaKey == null)
{
//do some thing
}
或者你可以在查询之前检查它,如下所示:
没有过滤:
if(db.AccountMediaServerKey.Any())
{
}
带过滤:
if(db.AccountMediaServerKey.Any(p=> p.Tagger == USID && p.TagTo == USID))
{
}