我在实体模型中公开了一些数据库视图,因为存在使用标准OData查询语法无法实现的复杂查询。我使用WCF数据服务将这些实体暴露给第三方应用程序。基本上,有一些流程会改变我在EF层中的实体。我意识到表示数据库视图的实体不包含最实际的数据,因为它使用EF缓存并且不从数据库加载数据。表示数据库表的实体始终是最新的。为了确保表示数据库视图的实体包含最实际的数据,必须将AFAIK和MergeOptions设置为NoTracking,然后EF在数据库中执行查询并忘记缓存的值。
现在我的问题。是否可以在服务操作中使用CurrentDataSource以及MergeOptions来强制EF忘记缓存的实体并每次在DB中执行查询?或者是否有任何其他可能性来说明如何定义EF查询不应该使用缓存的实体值,而是执行RAW SQL?