在实体框架c中,当表为空时,我们可以得到标识列的最大值吗#[英] Can We Get Max Of A Identity Column When Table Empty In Entity Framework c#

本文是小编为大家收集整理的关于在实体框架c中,当表为空时,我们可以得到标识列的最大值吗#的处理方法,想解了在实体框架c中,当表为空时,我们可以得到标识列的最大值吗#的问题怎么解决?在实体框架c中,当表为空时,我们可以得到标识列的最大值吗#问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想在一个小型销售系统中显示当前交易的用户 ID,我需要在我的程序期间获取我的身份 ID 的最大值现在我想知道当表为空时我可以得到它????例如:Id 种子是 1000 marshal.tbl_Transaction.max(l=>l.Id)+1;当我的表在程序开始时是空的时它是否有效??????????谢谢

推荐答案

你好,

这确实是不正确的做法.您不应将 ID 列的最大值用于 Next Identity 值.

您的方法有问题:同时两个用户打开同一个页面以添加新值.并且它们都将分配相同的 ID 值.数据会不一致.

正确做法: 当用户打开此表单时,您需要在数据库中添加一个条目.您需要使用 IsValidData 字段再添加一列.在用户单击保存按钮之前,它应该是错误的.您需要 IsValidData 字段,因为用户可能会来到该表单并关闭而不保存.在这种情况下,您在数据库中有一个无效条目.您需要以特定的时间间隔从数据库中清除此类条目.虽然这个过程变得更加复杂,但是如果你需要显示Identity值,你需要进行这样复杂的过程.

让我们看看其他CP专家是否有更可行的解决方案.

谢谢
-Amit Gajjar

本文地址:https://www.itbaoku.cn/post/1356022.html