如果记录不存在,则在为给定行名称选择整数 ID 时,LINQ to Entities 将返回什么?
这是代码:
string name = "myName";
int id = (int)_myDB.ThingTable.Where(thing => thing.ThingName == name)
.Select(thing => thing.ThingId);
我有一个错误,说 System.Linq.IQueryable 无法转换为 int (我假设这是这样,这样我就不会出现找不到行的情况 - 没有返回 id)
首先,如何我可以将它转换为 int 吗?
其次,如果不存在 ThingName == name 的记录,会返回什么?
谢谢,
马特
Here's the code:
string name = "myName";
int id = (int)_myDB.ThingTable.Where(thing => thing.ThingName == name)
.Select(thing => thing.ThingId);
I have an error saying System.Linq.IQueryable cannot be converted to int (I'm assuming it's so that I don't end up with a case where no rows are found- no id is returned)
First, how can I cast it to an int?
Second, what gets returned if no record with a ThingName == name exists?
Thanks,
Matt
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要一个返回标量的查询表达式。 类似于:
在您的示例中,它将是:
如果没有返回行,则返回标量的默认值(在不可为空数字的情况下通常为零)。
You need a query expression that returns a scalar. Something like:
In your example it would be:
If no row is returned, the default value of the scalar is returned (generally zero in the case of a non-nullable number).
尝试对此类查询使用 FirstOrDefault() 。 如果没有返回任何内容,它将返回选择的默认值。 0 表示数字,null 表示对象。
Try using FirstOrDefault() on queries such as that. It will return the default value for the selection if nothing is returned. 0 for numbers, null for objects.