从最近插入的对象中检索ID

时间:2019-03-07 09:53:38

标签: c# .net entity-framework-core

我将EF Core与我自己的工作单元和通用存储库模式一起使用。我有一个影子属性,链接到在数据库中没有直接关系的实体。 因此,我执行了一个UOW,利用shadow属性将其添加到两个表中,以从第一个插入中获取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。有谁知道解决这个问题的合适方法。

1 个答案:

答案 0 :(得分:0)

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

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