EF在实体存在时找不到它-需要等待一段时间



在项目中,我们使用EF 6.0将一个新实体添加到表中,步骤如下:上下文创建、新实体创建、实体添加到实体集、字段更新、上下文保存更改。我不知道它是否重要——其中一个字段是全文索引。

在很短的时间内,我们创建了另一个上下文,并使用以下方法发送一个sql查询:

context.<Table>.SqlQuery( selectStr, sqlParameters) 

在查询中,有几个地方的查询部分使用全文搜索功能-这就是为什么我们将sql查询创建为字符串,而不使用LINQ:

Contains(<FieldName>, @p0)

我们面临的问题是,查询无法找到最近插入的实体,但经过几次尝试(几秒钟)后,可以在结果集中找到实体。

我们应该怎么做才能第一次找到这个项目?

这通常发生在以下情况:

  • 第二个上下文嵌套在第一个上下文之下,即Service1有第一个上下文,并且还引用了对象Service2,后者有第二个语境。问题在于,在构建第二个上下文的那一刻,数据库条目并不存在
  • 此外,也不完全确定为什么会出现这种情况,但如果第一个上下文没有被处理,那么在尝试用第二个上下文阅读之前,其他上下文有时看不到变化

最新更新