C# 如何加载数据库更改? 我正在使用EntityFramework5和SQLServer2008R2 我还实现了存储库模式 这是一个桌面应用程序
除了一个“小”细节外,我的系统运行良好。 当两个或多个用户正在使用应用程序时,其中一个用户更改了数据,而另一个用户如果不离开并重新进入应用程序,则看不到数据。 我在这里得到了拉迪斯拉夫的答案: 它成功了。唯一的问题是,对于每个集合,我要确保它是更新的,我必须硬编码它 尽管它有效,我还是忍不住想,一定有更好的办法。 我不认为Entity Framework不知道数据库何时更改,需要重新检索数据 那么,我做错了什么 这就是我目前正在做的:C# 如何加载数据库更改? 我正在使用EntityFramework5和SQLServer2008R2 我还实现了存储库模式 这是一个桌面应用程序,c#,.net,entity-framework,.net-4.0,entity-framework-5,C#,.net,Entity Framework,.net 4.0,Entity Framework 5,除了一个“小”细节外,我的系统运行良好。 当两个或多个用户正在使用应用程序时,其中一个用户更改了数据,而另一个用户如果不离开并重新进入应用程序,则看不到数据。 我在这里得到了拉迪斯拉夫的答案: 它成功了。唯一的问题是,对于每个集合,我要确保它是更新的,我必须硬编码它 尽管它有效,我还是忍不住想,一定有更好的办法。 我不认为Entity Framework不知道数据库何时更改,需要重新检索数据 那么,我做错了什么 这就是我目前正在做的: public class MyAppContext : Db
public class MyAppContext : DbContext
{
//DbSet<T> declarations
}
public class Context : IDisposable
{
private readonly MyAppContext ctx;
private Dictionary<Type, IRepository> repositories;
private static Context instance;
public static Context Instance
{
get
{
if (instance == null)
instance = new Context();
return instance;
}
}
...
}
// and then each repository have access to the context
public abstract class Repository<T> : IRepository
where T : class
{
protected readonly MyAppContext ctx;
...
}
公共类MyAppContext:DbContext
{
//DbSet声明
}
公共类上下文:IDisposable
{
私有只读MyAppContext ctx;
私人词典库;
私有静态上下文实例;
公共静态上下文实例
{
得到
{
if(实例==null)
实例=新上下文();
返回实例;
}
}
...
}
//然后每个存储库都可以访问上下文
公共抽象类存储库:IRepository
T:在哪里上课
{
受保护的只读MyAppContext ctx;
...
}
如您所见,我使用“singleton”模式访问上下文并避免双重上下文异常
有什么想法吗?你可以用它来获得通知@Blam这是唯一的方法吗?这不能通过EntityFramework完成吗?谢谢