Linq获取最后一个ID

时间:2015-03-25 19:17:55

标签: c# linq insert multiple-tables

我正在尝试执行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。

1 个答案:

答案 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。