实体框架缓存?

时间:2012-09-06 17:50:51

标签: asp.net-mvc-3 sql-server-2008 entity-framework unity-container

我有一个使用Entity Framework 4.1的项目。该模型已从SQL Server 2008 R2计算机上的数据库建模。

我有一个包含3个nvarchar列,2个bitcolumns和1个datetime列的表。

应用程序正在使用存储库模式和依赖注入。 DI容器中的所有项都设置为Transient,但设置为Hierarchical的上下文除外。

现在,当我在实体框架中对模型运行lambda查询时,它会按预期拉取我的数据。例如:

 var someData = _dataRepository.Get(data => data.Name == name && data.IsEnabled);

基本上,存储库的Get方法是.Where(过滤器)linq表达式的包装。

问题是:

当我将数据库(通过SMS或使用.SaveChanges的代码内)更新到数据库中的位列或日期时间列并重新查询数据时,返回的查询数据将返回预期的数据。但是,每当我在其中一个nvarchar列上更新(SMS / .SaveChanges)并重新查询时,它就会返回nvarchar用于包含先前查询的“旧”数据 - 而不是更新的数据。

Entity Framework是否有一些导致这种情况发生的继承缓存?

0 个答案:

没有答案