2014-07-10 32 views
0

如何获得Ident_Current from linq
我曾试过这段代码,但得到错误的数据作为回报。从Linq获取Ident_Current

HamdeshDatabaseEntities hmd = new HamdeshDatabaseEntities(); 
int varMaxAdvertiseId = Convert.ToInt32(hmd.Database.ExecuteSqlCommand("Select IDENT_CURRENT ('HMDAdvertiseManage')").ToString()); 

当我在服务器上执行选择IDENT_CURRENT( 'HMDAdvertiseManage'),它返回CurrentId
但当我通过Linq在前端执行它总是返回-1
我不知道为什么我得到这个。
请建议我一个更好的选择

回答

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

+0

非常感谢.... –