如何最好地返回新添加的实体?

时间:2016-05-04 14:11:23

标签: c# entity-framework-core

我刚刚注意到,当成功添加到DbSet时,add方法不再返回实体,并且我有点不知道为什么因为它是EF 5中的Add()的一致特性和6。

我知道在添加实体时我可以通过使用try catch来实现类似的功能,只需返回查询结果

try
{
    Cars.Add(new Car { Make = "Ford", Model = "Focus", Year = 2016, Use = "Rally" });

    return Cars.SingleOrDefault(car => car.Make == "Ford", Model == "Focus");
}
catch(Exception ex)
{
    return null;
}

在这里,我已经看到了一些问题,这些问题将我带到了我真正想要的东西。因为Add()不再返回对象,这样做的最佳或正确方法是什么?

1 个答案:

答案 0 :(得分:0)

嗯,你真的不需要Add方法来返回任何东西,包括你刚刚添加的对象,因为你已经有了这个对象!

在下面的示例中,一旦我将汽车添加到Cars DbSet并调用SaveChanges(),EF将使用生成的主键从数据库填充汽车ID,并将开始跟踪此对象以供将来更改:

Car car = new Car { Make = "Ford", Model = "Focus", Year = 2016, Use = "Rally" }
Cars.Add(car);

dbContext.SaveChanges();

// car object is ready to use!