我正在尝试执行2次linq插入查询。第二个需要第一个查询中最后插入的id值。
如何获取last_id_inserted(last_fich)?
db.CWC_FICHEIROS.Add(new CWC_FICHEIROS
{
idfiletype = newextID,
filename = fileName,
fileurl = fileName,
fileordem = "AA001",
filedate = System.DateTime.Now,
fileact = true
});
last_fich = db.CWC_FICHEIROS.Max(item => item.id_file);
db.CWC_FILESSUBCONTEUDOS.Add(new CWC_FILESSUBCONTEUDOS
{
idfile = last_fich,
idsubconte = cwc_subconteudos.idcont,
fscact = true
});
db.SaveChanges();
就像它一样,last_fich
为我提供CWC_FICHEIROS
第一行的ID。
答案 0 :(得分:5)
不是直接添加对象,而是先创建对象,然后插入如下:
var yourOjbect = new CWC_FICHEIROS
{
idfiletype = newextID,
filename = fileName,
fileurl = fileName,
fileordem = "AA001",
filedate = System.DateTime.Now,
fileact = true
};
db.CWC_FICHEIROS.Add(yourObject);
db.SaveChanges();
稍后您可以访问其ID:
Console.WriteLine(yourObject.ID);
不要依赖db.CWC_FICHEIROS.Max
,数据库中可能同时存在多个插入,并且最终可能会出现错误的ID。