2012-02-06 11 views
3

開発チームは、データアクセスレイヤーでLINQ to SQLを使用したいと考えています。私たちが取り組んできた問題は、アクセスしているSQL Serverデータベースが特定のテーブルに追加の列を持つことがあることです。このバリエーションは限られているので、せいぜい5つの追加のオプションの列を考慮する必要があります。LINQ to SQLを使用してデータベーステーブルに余分な列がある場合

オプションの列が存在する状況ごとに1つずつ、5つのデータコンテキストを作成し、正しい列を使用するためのスイッチを作成できることに気付きました。しかしこれはちょっと重いようでした。

私たちはLINQ to SQLを使い続けることができますが、いくつかの拡張性を持っているので、5ではなく1つのdatacontextを使うことができますか?

注:第三者が所有するデータベーススキーマは制御できません。それ以外の場合、これらのテーブルには常に追加の列が含まれます。

+0

複数のシングルテナントシナリオでは、列が存在することがあり、時には存在しないことがあるという意味で「追加」ですか? – David

+0

これらの列は、あなたのデータコンテキストで気になる外来キーに参加していますか? – jklemmack

+1

L2Sはそれを好まないでしょう...もっと簡単なオプション:常に列を持ちますが、具体的な意味の実装があります。または:追加のデータにBLOB/CLOB/EXTテーブルを使用する –

答えて

0

開発チームは、これがLINQではうまく機能しないと判断しました。そこで、ADO.NET SqlCommandsを代わりに使用し、LINQを生成するのではなく、独自のSQLを作成しました。これにより、5つではなく1つのデータレイヤークラスを保持しながら、追加の列が存在するときにSQLを柔軟に変更することができました。

関連する問題