我将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。有谁知道解决这个问题的合适方法。
答案 0 :(得分:0)
完成SaveChangesAsync()
之后,您可以像这样检索shadow属性的值:
var entity1ID = dbContext.Entry(entity1).Property("ID").CurrentValue;