初始化扩展类-设计问题

本文关键字:问题 扩展 初始化 | 更新日期: 2023-09-27 18:09:06

我在c#应用程序中遇到了一个设计问题。我有一个DAL,它为来自不同数据库的几个不同客户提供数据。到目前为止,这些数据库具有相同的表和字段名,但现在我有一个数据库具有不同的字段名,因为客户希望字段名是本地语言而不是英语。

如何解决这个问题?

我当前的应用程序架构是基于工厂的。这里是:

BusinessFactory初始化DAL,所以我的第一个想法是扩展DAL,然后覆盖需要更改数据库字段名称的函数,并在扩展类中创建一个新函数。但是我应该什么时候初始化这个扩展类呢?

我不能从我的BusinessFactory做,因为DAL依赖于一个接口。

如果我把扩展DAL作为这个问题的解决方案都错了,请给我指出另一个方向。

初始化扩展类-设计问题

我认为你必须有一个客户端->数据库映射在适当的基础上,你决定连接到哪个数据库

因此,可以引入预处理器层来确定需要从数据库中获取的列名。所以基本上你会保留一个每个客户端的配置(和一个默认配置),你可以使用。

简单的解决方案是使用客户端希望的语言创建具有列名的视图。