gpt4 book ai didi

c# - 我将如何设计一个存储库来处理多个数据访问策略?

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:50 24 4
gpt4 key购买 nike

对于能够使用 ASP.NET MVC 和 C# 支持多个数据库层的存储库,骨架设计是什么样的?我想看看如果我同时支持 LINQ to SQL 和 NHibernate,设计会是什么样子。我将如何创建我的数据库对象,并在我的 BLL 层中调用它的方法?

最佳答案

repository pattern可能是最好的解决方案。您将为每个存储库定义一个接口(interface),然后为 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
}
}

依赖注入(inject)框架,例如Ninject ,使得在实现之间动态切换变得容易。您可能需要使用 NHibernate 进行一些额外的依赖注入(inject),以将当前 ISession 传递到您的存储库中,以便它们参与相同的工作单元。

关于c# - 我将如何设计一个存储库来处理多个数据访问策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com