Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检索列的最后一个标识值_C#_Sql Server_Entity Framework_Linq - Fatal编程技术网

C# 检索列的最后一个标识值

C# 检索列的最后一个标识值,c#,sql-server,entity-framework,linq,C#,Sql Server,Entity Framework,Linq,我需要检索列的最后一个标识值,例如,我知道您可以通过以下查询获得它: USE MYDB GO DBCC CHECKIDENT(('MYTABLE'),NORESEED) GO 但我需要它与C#,Linq,实体框架一起使用,这样我就可以将最后一个标识值转换为int数字。请尝试下面的代码片段 decimal[] results = _db.Database.SqlQuery<decimal>("SELECT IDENT_CURRENT ('MYTABLE')").ToArray();

我需要检索列的最后一个标识值,例如,我知道您可以通过以下查询获得它:

USE MYDB
GO
DBCC CHECKIDENT(('MYTABLE'),NORESEED)
GO

但我需要它与C#,Linq,实体框架一起使用,这样我就可以将最后一个标识值转换为
int
数字。

请尝试下面的代码片段

decimal[] results = _db.Database.SqlQuery<decimal>("SELECT IDENT_CURRENT ('MYTABLE')").ToArray();
 int maxValue = Convert.ToInt32(results[0]);
decimal[]results=_db.Database.SqlQuery(“选择当前标识('MYTABLE'))”).ToArray();
int maxValue=Convert.ToInt32(结果[0]);
DBEntities db=newdbentities();
int id=Convert.ToInt32(db.executestrequery(“SELECT IDENT_CURRENT('db.Table')”,新对象[0]).FirstOrDefault());
返回id;

这在我的特殊情况下有效

问题是当有人删除最后一条记录时,身份将与最后一条记录不同,我需要知道最后一个身份value@Beastbeast这是什么意思?删除表中的行时,下一个标识值不会更改。可能您指的是最近插入的具有标识的行被删除,DBCC抛出错误的情况?事实上,对不起,last是指表的最新记录,是的,这就是为什么我需要检索标识而不是last的标识的原因record@Beastbeast,我已更新了上述答案。那么,请验证和确认为什么?想要知道最后一个值是等待发生的竞争条件;你到底想在这里做什么?提示:这里您只需要:
SCOPE\u IDENTITY()。。。查询
MAX(theidentitycolumn)
…我10000%同意@marcGravel。但是,如果你在一个不太理想的解决方案中死气沉沉地做这件事,你应该研究一下。即使该行已被删除,它也将返回上次插入的标识值。@SeanLange我将承认
IDENT_CURRENT
DBCC CHECKIDENT
更干净;但这只是改变了我脸上的恐怖程度。。。稍微:)@MarcGravel这里也是……这篇文章的所有内容都表明它充其量是危险的。
DBEntities db = new DBEntities();
            int id = Convert.ToInt32(db.ExecuteStoreQuery<decimal>("SELECT IDENT_CURRENT('DB.Table')", new object[0]).FirstOrDefault());
            return id;