C#:获取实体的最后一个ID(LINQ2SQL)

发布于 2024-12-12 07:14:19 字数 674 浏览 0 评论 0原文

我浏览了一下 stackoverflow 来找到我的问题的答案。 我发现的所有内容是:从表中获取最后一个ID [实体框架]

这正是我所需要的..但​​是这个问题没有答案..似乎提出问题的人没有解释为什么他需要它。

我正在为我的公司编写一个票务系统。

现在,如果有人创建票证,我希望他不要自己输入票证 ID(票证号)。我想要一个启用 = false 的文本框。它应该自动填充新的票证 ID(必须是最后一个票证 ID + 1)。

这就是我寻找实体的最后一个 id 的原因。

我尝试了这个:

var ticketNrQuery = (from tn in kdVerwaltung.Ticket
                     orderby tn.Ticket_ID
                     select tn).Last();
textBoxTicketNr.Text = (ticketNrQuery.Ticket_ID + 1).ToString();

在这个示例中我得到了一个不受支持的异常(到底是什么)。

我的问题有什么解决办法吗?

i looked a bit around stackoverflow to find an answer for my question.
All what i found is this: Get Last ID From The table [ Entity Framework ]

This is exactly what i need.. but there is no answer for this question.. seems that the guy who asked the question didnt explain why he needs it.

I am coding a ticket system for my company.

Now if someone creats a ticket i want him not to type in the Ticket ID (Ticket #) by himself.. i want a textbox which is Enabled = false. It should automatically be filled with the new Ticket ID (it must be the last Ticket ID + 1).

This is the reason why i am looking for the last id of my entity.

i tryed out this:

var ticketNrQuery = (from tn in kdVerwaltung.Ticket
                     orderby tn.Ticket_ID
                     select tn).Last();
textBoxTicketNr.Text = (ticketNrQuery.Ticket_ID + 1).ToString();

in this sample i get an unsupported exception (what the hell).

Any solutions for my problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

你怎么这么可爱啊 2024-12-19 07:14:19

您可以使用 MAX() 因为它可以转换为 SQL

var maxTicketId = kdVerwaltung.Ticket.Max(x => x.Ticket_ID) + 1;

:将被转换为以下查询:

SELECT MAX([t0].Ticket_ID) as [value] FROM [dbo].[YourTable] AS [t0]

如果您打算在生产中使用它,则应该对其进行概要分析。如果您有很多行,那么使用 MAX 可能会非常慢。

You can use MAX() since it can be translated to SQL:

var maxTicketId = kdVerwaltung.Ticket.Max(x => x.Ticket_ID) + 1;

That will be translated into the following query:

SELECT MAX([t0].Ticket_ID) as [value] FROM [dbo].[YourTable] AS [t0]

You should profile this if you're going to use it in production. Using MAX can be pretty slow if you have a lot of rows.

给不了的爱 2024-12-19 07:14:19
        Int32? newID = (from ticket in kdVerwaltung.Ticket select (int?)ticket.ID).Max();
        newID = newID.HasValue ? newID.Value + 1 : 1;
        Int32? newID = (from ticket in kdVerwaltung.Ticket select (int?)ticket.ID).Max();
        newID = newID.HasValue ? newID.Value + 1 : 1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文