从Linq获得Ident_Current

时间:2014-07-10 11:00:04

标签: c# .net linq

如何获得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
我不知道为什么我得到这个 请建议我一个更好的选择

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,因为它没有影响任何行。