LINQ to SQLを使用してデータベーステーブルの余分な列を使用できる場所

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

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

誰かがLINQ to SQLを使い続けることができる方法を知っていますか?しかし、5の代わりに1つのdatacontextを使用できるようにいくつかの拡張性がありますか?

Note: We cannot control the database schema as it is owned by a third party. Otherwise, we'd always include the extra columns in those tables.

3
これらの列は、あなたのデータエリアで気になる外来キーに参加しますか?
追加された 著者 jklemmack,
複数のシングルテナントシナリオでは、列が存在することがあり、時には列が存在しないことがあるという意味での「追加」はありますか?
追加された 著者 David,
L2Sはそれを好まないでしょう...もっと簡単なオプション:常にカラムを持っていますが、具体的な実装には意味があります。または:追加のデータにblob/clob/extra-tableを使用する
追加された 著者 Marc Gravell,
@車線の意味;列の名前/存在は変わりませんが、ソフトウェアは意味を決定します。まだかなり恐ろしく
追加された 著者 Marc Gravell,
@デビッド、余分な列はかなり安定しています。 dbを作成するときにデータベースに追加することができます。一度そこに行くと、彼らは決して遠ざかりません。
追加された 著者 Lane,
@jklemmack、はい、彼らは他のテーブルに関連していますが、私たちは拡張可能なdatacontext
追加された 著者 Lane,
@MarcGravell、少し解説できますか?意味の実装を具体的にすることによって、あなたが意味することは不明です。また、第三者が所有するデータベーススキーマを制御することはできません。
追加された 著者 Lane,

1 答え

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

0
追加された