我正在尝试使用LINQ执行SQL插入查询并返回ID字段。我的代码不起作用,任何人都可以告诉我我的语法是否错误?
string query = "insert into EnvironmentalReportDepts ";
query += "(fkDeptID, OrderNumber, fkEnvironmentalReportID) ";
query += "values(" + tmpDeptReport.fkDeptID + ", " + tmpDeptReport.OrderNumber + ", " + tmpDeptReport.EnvironmentalReport.EnvironmentalReportID + ") ";
query += "select scope_identity()";
var newDeptID = _database.ExecuteQuery<int>(query).ToList()[0];
答案 0 :(得分:2)
尝试更改
query += "select scope_identity()";
到
query += "; select scope_identity()";
此外,您可能必须使用
_database.ExecuteQuery<decimal>(query).ToList()[0];
答案 1 :(得分:0)
将查询更改为:
string query = "DECLARE @scope_identity int";
query += "insert into EnvironmentalReportDepts ";
query += "(fkDeptID, OrderNumber, fkEnvironmentalReportID) ";
query += "values(" + tmpDeptReport.fkDeptID + ", " + tmpDeptReport.OrderNumber + ", " + tmpDeptReport.EnvironmentalReport.EnvironmentalReportID + ") ";
query += "SET @scope_identity=@@IDENTITY";
query += "select @scope_identity";