首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linq对象引用而不是对象的实例

Linq对象引用而不是对象的实例
EN

Stack Overflow用户
提问于 2014-03-07 19:47:54
回答 5查看 7.6K关注 0票数 0

当Linq查询运行时,我遇到了问题,我收到了错误Object reference not set to an instance of an object.

代码语言:javascript
运行
复制
var RestaurantName = (from r in objCtx.Restaurants
                      where r.id == item.restaurantid
                      select r).SingleOrDefault<Restaurant>().Name;

然后,我将查询更改为

代码语言:javascript
运行
复制
var RestaurantName = (from r in objCtx.Restaurants
                      where r.id == item.restaurantid
                      select r).Single<Restaurant>().Name;

但是我收到了错误Sequence contains no elements。我检查了变量,它返回了一个餐馆名称。但我不明白为什么我会收到这些错误。

EN

Stack Overflow用户

发布于 2014-03-07 19:51:53

问题是集合中没有满足条件的项。SingleOrDefault返回null (用于引用类型),因此在第一个版本中,您将收到一个NullReferenceException。如果没有返回的元素,Single会抛出异常,这就是第二种方法失败的原因。

您需要检查是否有任何结果:

代码语言:javascript
运行
复制
var restaurant = (from r in objCtx.Restaurants
                  where r.id == item.restaurantid
                  select r).SingleOrDefault<Restaurant>();
string restaurantName;
if (restaurant != null)
    restaurantName = restaurant.Name;
else
    restaurantName = string.Empty;
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22259344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档