如何获得Ident_Current from linq
我曾尝试过这段代码,但收到了错误的数据。
HamdeshDatabaseEntities hmd = new HamdeshDatabaseEntities();
int varMaxAdvertiseId = Convert.ToInt32(hmd.Database.ExecuteSqlCommand("Select IDENT_CURRENT ('HMDAdvertiseManage')").ToString());
当我在服务器上执行Select IDENT_CURRENT('HMDAdvertiseManage')时,它返回CurrentId
。
但是当我在前端通过Linq执行它时,它总是返回-1
我不知道为什么我得到这个
请建议我一个更好的选择
答案 0 :(得分:5)
您必须使用SqlQuery
代替ExecuteSqlCommand
HamdeshDatabaseEntities hmd = new HamdeshDatabaseEntities();
int varMaxAdvertiseId = Convert.ToInt32(hmd.Database.SqlQuery<decimal>("Select IDENT_CURRENT ('HMDAdvertiseManage')", new object[0]).FirstOrDefault());
ExecuteSqlCommand
将返回受INSERT / UPDATE / DELETE语句影响的行数。
在您的示例中,它返回-1,因为它没有影响任何行。