如果记录不存在,则在为给定行名称选择整数 ID 时,LINQ to Entities 将返回什么?

发布于 2024-07-25 11:44:21 字数 381 浏览 4 评论 0原文

这是代码:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

断舍离 2024-08-01 11:44:21

您需要一个返回标量的查询表达式。 类似于:

myCollection.Where(c => c.X > 0).FirstOrDefault();

在您的示例中,它将是:

int id = (int)_myDB.ThingTable.Where(thing => thing.ThingName == name)
                 .Select(thing => thing.ThingId).FirstOrDefault();

如果没有返回行,则返回标量的默认值(在不可为空数字的情况下通常为零)。

You need a query expression that returns a scalar. Something like:

myCollection.Where(c => c.X > 0).FirstOrDefault();

In your example it would be:

int id = (int)_myDB.ThingTable.Where(thing => thing.ThingName == name)
                 .Select(thing => thing.ThingId).FirstOrDefault();

If no row is returned, the default value of the scalar is returned (generally zero in the case of a non-nullable number).

那小子欠揍 2024-08-01 11:44:21

尝试对此类查询使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文