会是什么骨架的设计外观像能够在存储库,以支持使用ASP.NET MVC和C#多个数据库层? 我希望看到一个设计会是什么样子,如果我支持LINQ to SQL和NHibernate的。 我将如何创建我的数据库对象,并调用它的方法在我的BLL层?
Answer 1:
该库模式可能是我们的最佳解决方案。 你会定义一个接口每个仓库,然后创建LINQ2SQL和NHibernate实现,如混凝土库
public interface ICustomerRepository
{
Customer GetCustomer(int id);
}
public class NhibCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// NHibernate implementation
}
}
public class LtsCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// Linq2Sql implementation
}
}
甲依赖注入框架,如Ninject ,可以很容易地实现之间动态切换。 您可能需要做一些额外的依赖注入与NHibernate到当前的ISession传递到你的资料库,让他们参与到同一个单位的工作。
Answer 2:
我媒体链接回应称,两次的xD
一个在这里
使用LINQ Reposity模式
另外这里
的ControllerFactory具有在一个不同的项目分开的控制器
文章来源: How would I design a repository to handle multiple data access strategies?