今天我注意到一个奇怪的事情,当我试图保存一个实体并在EF Core中返回它的id时
之前: 后:
我正在考虑是否在调用saveChanges()之前,但它适用于具有类似设置的另一个实体.
ps:我使用工作单元来保存最后的所有更改.
是什么原因?
在保存更改之前,它将为负数.只需调用Save
上下文.
_dbContext.Locations.Add(location); _dbContext.Save();
保存后,您将拥有数据库中的ID.您可以使用事务,在获得ID后可以回滚以防出现问题.
另一种方法是不使用数据库的内置IDENTITY字段,而是自己实现它们.当你有大量的批量插入操作时,这可能非常有用,但它需要付出代价 - 实现起来并不容易.