gpt4 book ai didi

c# - 具有多个后端和不同数据库设计的数据访问层

转载 作者:太空狗 更新时间:2023-10-29 23:51:52 25 4
gpt4 key购买 nike

我正在启动一个项目,并且正在为我们的数据访问层的架构而苦苦挣扎。基本上,它将需要与具有不同数据库设计的多个后端接口(interface)。

我想要一个通用的 DAL,它可以在任何后端执行通用功能。后端具有用于插入、更新等的唯一代码。因此,在 1 个后端添加员工将在另一个后端具有不同的代码。

我尝试了存储库模式,但这并不适用于这种情况。我最终只得到了一个工厂模式方法,但我最终会为每个对象创建一个工厂。我也许只能创建 1 个工厂,但后端对象将具有数百个函数,如“SaveEmployee”、“SavePlan”等。

现在我有以下内容:

DAL
--> DAL.Backend1
--> Employee.Save(employee)
--> Plan.Save(plan)
--> DAL.Backend2
--> Employee.Save(employee)
--> Plan.Save(plan)

在 DAL 项目中,我为每个对象、员工、计划都有一个工厂模式,以决定返回和执行哪个 DAL 对象。

我很确定这不是最好的架构,所以我想知道是否有更好的模式可以用来解决我的问题。

最佳答案

我们已经在我们的一个项目中实现了这个功能。我不确定这是最好的解决方案,但到目前为止它对我们有用。但是,我们有一个基于 CodeSmith 模板的自定义 DAO 层,它为我们生成 CRUD 类。本质上,我们创建了一个代表所有用户的连接代理的单例。当用户登录时,他们选择要连接的数据库(尽管一些 IP 过滤会缩小他们的选择范围,最好是 1)。登录存储一个连接 token 和关联的用户,生成的 DAO 层的基类调用连接代理来检索适当的连接字符串。这样,只要调用 DAO 对象,就会在 DAO 对象尝试连接到数据库之前收集连接字符串。

关于c# - 具有多个后端和不同数据库设计的数据访问层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14508077/

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