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。

希望这可以帮助!