SaveChanges()之前新添加的实体的ID
我正在向我的数据库添加一个实体,如下所示:
public TEntity Add(TEntity entity) { return (TEntity)_database.Set().Add(entity); }
但是, DbSet.Add
方法没有返回带有Id等的新添加的实体,它只是将我传入的对象返回到我的Add
方法。
它是否应该将包括Id
的完整新实体传回给我,或者在调用SaveChanges()
之前是否无法获取Id
?
对Add()
所有调用都在有效地将其与数据上下文一起注册,以便可以跟踪实体。 此时没有对数据库进行实际操作,直到(正如您正确提到)调用SaveChanges()
。
我假设您在表中使用自动生成的ID; 在这种情况下,它是数据库引擎,它将在插入记录时生成该Id,并且entity framework将读回来并为您填充实体。
因此,为了确认您的怀疑,不 – 在这种情况下调用SaveChanges()
之前无法获取Id。
希望这可以帮助!