带有返回值的Linq insert语句

时间:2015-08-25 13:28:42

标签: c# linq

我需要将以下SQL插入语句转换为LINQ:

Insert into Car (Name)
Output inserted.CarId
Values ('Red Car')

到目前为止,这是我的代码:

       using (MyContextEntities db = new MyContextEntities())
        {
            db.Entry(car).State = EntityState.Added;
            db.SaveChanges();
        }

如何返回插入项目的ID?

3 个答案:

答案 0 :(得分:3)

在SaveChanges之后,汽车实例已经生成了Id

另外,为什么要设置状态但不将实体添加到上下文?

 using (MyContextEntities db = new MyContextEntities())
 {
        db.Cars.Add(car);
        db.SaveChanges();
 }
 return car.Id

答案 1 :(得分:2)

EF将在您的汽车实例中设置:

using (MyContextEntities db = new MyContextEntities())
{
     db.Entry(car).State = EntityState.Added;
     db.SaveChanges();
     return car.Id;
}

答案 2 :(得分:2)

db.SaveChanges之后,您可以访问ID,例如

car.Id

Can I return the 'id' field after a LINQ insert?