我刚刚注意到,当成功添加到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()不再返回对象,这样做的最佳或正确方法是什么?
答案 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!