C# 使用EF处理两个应用程序中的一个表(缓存问题)
我有两个web应用程序(前端和后端) 两个应用程序共享同一个数据库 在开发环境(debug)中,我同时启动这两个程序。 调试时,若我更改后端中任何字段的值,则不会应用前端上的更改。在数据库值中这些都改变了。(ieC# 使用EF处理两个应用程序中的一个表(缓存问题),c#,asp.net-mvc,entity-framework,entity-framework-4,entity-framework-5,C#,Asp.net Mvc,Entity Framework,Entity Framework 4,Entity Framework 5,我有两个web应用程序(前端和后端) 两个应用程序共享同一个数据库 在开发环境(debug)中,我同时启动这两个程序。 调试时,若我更改后端中任何字段的值,则不会应用前端上的更改。在数据库值中这些都改变了。(ieUpdatepassed,SELECTfrom Management Studio提供正确的数据) 我猜EF在前端存储数据的本地副本 只有在我重新启动调试时才会出现更改(在前端)。 前端的代码示例: using (company_unitEntities _fc = new co
Update
passed,SELECT
from Management Studio提供正确的数据)
我猜EF在前端存储数据的本地副本
只有在我重新启动调试时才会出现更改(在前端)。
前端的代码示例:
using (company_unitEntities _fc = new company_unitEntities())
{
var ff = _fc.agency_tamplates_d.ToList();
}
有趣的事实:
当我将AsNoTracking
方法添加到数据加载中,并观察Prifiler时,我发现'SELECT'查询到达服务器,但更改没有出现
using (company_unitEntities _fc = new company_unitEntities())
{
var ff = _fc.agency_tamplates_d.AsNoTracking().ToList();
}
这种行为的原因可能是什么
我使用: ASP.NET MVC 4,实体框架 谢谢大家! UPD:
前端和后端使用不同的实体数据模型。除非您执行“编辑并继续”,否则我不确定您为什么认为代码更改会自动应用。当然,您必须重新编译并重新启动。每次我想从数据库检索数据时都要重新编译吗?你一定是在开玩笑。对不起,我以为你在更改表/架构,而不仅仅是更改数据。我看错了。是的,EF缓存查询如何使用EF在同一数据库中同时运行两个应用程序?禁用缓存?使用单一实体数据模型?谢谢..我遇到了类似的问题,您可以在检索数据时查看MergeOption.OverwriteChanges。看看这个: