C# 从最近插入的对象检索ID

C# 从最近插入的对象检索ID,c#,.net,entity-framework-core,C#,.net,Entity Framework Core,我将EF Core与我自己的工作单元和通用存储库模式一起使用。我有一个影子属性链接到数据库中没有直接关系的实体。 因此,我使用shadow属性向两个表中添加一个UOW,以从第一次插入中获取ID,并将其作为外键放置在第二次插入中,而不受任何约束。 这一切都很好,两个表中新插入的记录对应。因此,第一个表的主键成功地放置在第二个表中,因此我有了阴影关系 我不能做的是在C代码中访问这个新的ID字段,这样我就可以将它返回给客户端 像这样的 int entity1ID = _unitOfWork

我将EF Core与我自己的工作单元和通用存储库模式一起使用。我有一个影子属性链接到数据库中没有直接关系的实体。 因此,我使用shadow属性向两个表中添加一个UOW,以从第一次插入中获取ID,并将其作为外键放置在第二次插入中,而不受任何约束。 这一切都很好,两个表中新插入的记录对应。因此,第一个表的主键成功地放置在第二个表中,因此我有了阴影关系

我不能做的是在C代码中访问这个新的ID字段,这样我就可以将它返回给客户端

像这样的

      int entity1ID = _unitOfWork.entity1Repository.AddEntity1(entity1);
      //The value in entity1ID is -2147482647. This is used to map the shadow property.
      int entity2ID = _unitOfWork.entity2Repository.AddEntity2(entity2);
      int resultCount = await _unitOfWork.SaveChangesAsync();

这一过程完成后,一切都正常。我无法获取entity1ID字段,如果我检查它,那么它仍然包含值-2147482647。有人知道这个问题的解决方案吗。

一旦您的
savechangesync()
完成,您就可以像这样检索shadow属性的值:

var entity1ID = dbContext.Entry(entity1).Property("ID").CurrentValue; 

完成
saveChangesSync()
后,您可以像这样检索shadow属性的值:

var entity1ID = dbContext.Entry(entity1).Property("ID").CurrentValue; 

Entity1.ID
Entity2.Entity1ID
字段是否都声明为卷影属性?
Entity1.ID
Entity2.Entity1ID
字段是否都声明为卷影属性?