2008-08-14 2 views
4

wikiやフォーラム、ブログソフトウェアなどのWebアプリケーションでは、データをリレーショナルデータベースに保存すると便利です。多くのホスティング企業はホスティングプランを持つ単一のデータベースを提供しています(余分なデータベースが追加されています)。データベースオブジェクト(テーブル、ビュー、制約、ストアドプロシージャ)に共通の接頭辞が付いている場合、データベースの不足を認識するアプリケーションでは、ハードコードされたテーブル接頭辞を持つのが一般的です。しかし、私はもっと欲しい。具体的には、ユーザーがテーブルをweb.configファイルで指定できる接頭辞を持っていたいと思います。.Net OR/Mで設定可能なテーブル接頭辞?

私は手作業で符号化CRUDの操作を嫌うので、私は有能なOR/Mを使い、LINQ to SQL、Subsonic、ADO.Netを使っていました。私は新しいプロジェクトでいくつかのスラッシュを抱えていますが、ユーザーのweb.configファイルにテーブルのプレフィックスを付けることになります。このシナリオを優雅に処理できる.NetベースのOR/M製品はありますか?

私がこれまで思いついたのは、LINQ to SQLを、外部のマッピングファイルを使って使っていることです。これは、仮に仮説的なweb.config設定に基づいて何とか更新する必要があります。

誰かが優れたソリューションを持っていますか?私はそれをEntity Frameworkで実現しようとしましたが、それはすぐに混乱になりました。 (私のEFに慣れていないのだろうか?おそらく。)SubSonicについてはどうですか?コード生成時以外にテーブル接頭辞を適用するオプションがありますか?

答えて

2

私は、今ではSQLとdocumented the steps required in eachにEntity FrameworkのとLINQの両方でこれを行うために必要なものを研究してきました。ここでの回答よりもはるかに長いので、私はここでそれを複製するのではなく、答えへのリンクが付いています。 LINQ to SQLはより柔軟なソリューションであり、最も簡単に実装することができます。

1

LightSpeedはあなたが実行時に動的にテーブル名を解決することができますINamingStrategyを指定することができます。

1

テーブルプレフィックスを使用する代わりに、schema(MS Sql 2005以上)に属するアプリケーションユーザーが必要です。

これは、ことの代わりに、意味:あなたが持っている

select * from dbo.clientAProduct 
select * from dbo.clientBroduct 

select * from clientA.Product 
select * from clientB.Product 
関連する問題