ExecuteStoreCommand 返回 -1 ,EntityFramework ,C#?
我想获得下一个自动递增的主键, 在这里,我理解使用 T-SQL 来做到这一点。 所以我写了下面的方法:
public int GetLastNewsID()
{
const string command = @"SELECT IDENT_CURRENT ('{0}') AS Current_Identity;";
int id = EntityModel.ExecuteStoreCommand(command, "News");
return id;
}
但它返回-1,而现在它必须是4。
附: 当我在 SQL Management Studio 中执行以下 T-SQL 时,它返回 4
USE T;
GO
SELECT IDENT_CURRENT ('NEWS') AS Current_Identity;
GO
I wanna get the next automatically incrementing primary key, Here I understood to use T-SQL for doing that.
So I wrote the following method :
public int GetLastNewsID()
{
const string command = @"SELECT IDENT_CURRENT ('{0}') AS Current_Identity;";
int id = EntityModel.ExecuteStoreCommand(command, "News");
return id;
}
but it returns -1, whereas it must be 4 right now.
P.S:
When I execute below T-SQL in SQL Management Studio , it returns 4
USE T;
GO
SELECT IDENT_CURRENT ('NEWS') AS Current_Identity;
GO
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用 ExecuteStoreQuery
SQL 查询将返回一个
十进制
所以你需要将其转换为int
。You need to use ExecuteStoreQuery
The SQL query will return a
decimal
so you need to convert it toint
.阅读有关返回值的部分:
http://msdn .microsoft.com/en-us/library/system.data.objects.objectcontext.executestorecommand.aspx
Read part about return value:
http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.executestorecommand.aspx