我正在使用Unity 2.0为抽象存储库注册一个具体的SQL Server存储库,如下所示:
var context = new DataContext(
ConfigurationManager.ConnectionStrings["DevDB"].ConnectionString
);
this.UnityContainer
.RegisterType<AlertQueueRepository, Sql.AlertQueueRepository>(
new InjectionConstructor(context)
);
我在所有其他存储库中共享上下文。这在应用程序中工作正常,但是,如果其他人 - SSMS查询,SSIS包,其他应用程序 - 修改数据库我的存储库不知道这一点,并且不会看到更改。
这是我使用Unity的方式的问题吗?也许这些背景太久了?或者我需要使用LINQ进行配置?
答案 0 :(得分:2)
考虑这个问题的答案:Multiple application using one database?。
如果您确实需要多个应用程序来访问/修改数据,请考虑在数据库之上构建一个层来为所有请求提供服务。
答案 1 :(得分:1)
这个问题与我的相似 - ASP.NET MVC inject per request。
我需要做的是让每个请求都注册自己的上下文,因为它具有在每个请求之后抛出上下文的副作用。现在我只是考虑这种模式的性能影响。