【发布时间】:2016-01-21 09:31:57
【问题描述】:
我使用实体框架将数据插入到表中,但现在我需要从上次执行的查询中检索最后一个 id。
这是我的代码
var filedbdata = "'" + FileTitle + "'" + "," +
"'" + path + "'" + "," +
"'" + Session["UserID"] + "'";
var query = "insert into File_Upload(file_title,file_loc,file_userid) values(" + filedbdata + ")";
db.Database.ExecuteSqlCommand(query);
db.SaveChanges();
int lastid = ??
【问题讨论】:
-
如果可以使用安全的 sql 参数,为什么还要进行字符串连接?
-
不确定代码是否准确,但您应该可以使用 .OrderByDescending 对 id 进行降序排序,然后选择此列表中的第一项。
-
如果您要手动构建简单的 SQL 查询,为什么还要使用 EntityFramework?请参阅stackoverflow.com/questions/5212751/… 以获取您的问题的答案以及如何对其进行编码的示例。如果您想从查询中返回最新的 ID,请将
SELECT SCOPE_IDENTITY()添加到其中。 -
在sql中使用scope_identity()会返回最后一个id
-
什么关系型数据库?我不知道实体框架是否有一些内置属性,但是要从数据库中获取最后一个自动生成的 id 取决于 RDBMS,而且,“最后一个自动生成的 id”这句话本身是模棱两可的.
标签: c# sql asp.net-mvc entity-framework