2011-09-17 4 views
1

私のC#アプリケーションで設計上の問題が発生しています。私は異なるデータベースからいくつかの異なる顧客のデータを提供するDALを持っています。今までこれらのデータベースは同じテーブルとフィールド名を持っていましたが、顧客はフィールド名を英語ではなくロケール言語にしたいので、異なるフィールド名を持つデータベースが1つあります。拡張クラスを初期化する - 設計の質問

私はこれをどのように解決するのですか?

私の現在のアプリケーションアーキテクチャは工場に基づいています。私はこれを持っています:

BusinessFactory DALを初期化しました。最初はDALを拡張し、データベースフィールド名を変更する必要がある関数をオーバーライドして、拡張クラスで新しい関数を作成することでした。しかし、いつ私はこの拡張クラスを初期化する必要がありますか?

私はBusinessFactoryからはできません.DALはインターフェイスによって異なるためです。

この問題の解決策としてDALを拡張することについて私がすべて間違っている場合は、他の方向も指摘してください。

答えて

0

私はあなたが接続するデータベースを決定するのに基づいてクライアント - > dbマッピングをしている必要があると思います。

したがって、データベースから取得する必要がある列名を把握するために、プリプロセッサ層を導入することができます。基本的には、クライアントごとの設定(およびデフォルトの設定)を使用することができます。

0

単純な解決策は、クライアントが望む言語で列名を持つビューを作成することです。この方法で、アプリケーションを変更する必要はありません。

関連する問題