コンパイルされたエンティティ フレームワーク ドメインと動的に定義された外部データベースを混在させるプロジェクトがあります。ユーザーは、実行時に接続文字列、テーブル名、および列名を指定して、外部システムにアクセスできます。私は以前、動的に生成された SQL を使用して外部システムにアクセスし (もちろん、SQL インジェクションを避けるために慎重に作成しました)、関心のあるテーブルを に読み込み、DataTable
これらを POCO に具体化していました。
現在、私のビューの 90% はIQueryable
オブジェクトを使用して DB クエリの構造を検査し、ビューを効率的にフォーマット/ページ/操作しました。これにより、クエリを実行する前にかなりの作業を行うことができました。外部システムからのレコードを含むビューについては、歯を食いしばって を使用しIEnumerable.AsQueryable()
ました。
別のソリューションを使用したいと思います。私はLinq-to-SQLに傾倒しています(他の提案も受け付けています)が、動的なMappingSource
. また、一部の列はオプションであり、すべての列にマッピングを提供しないと Linq-to-SQL が爆発するかどうかわかりません。
public class ExternalMappingSource : MappingSource
{
public string[] KeyColumns { get; set; }
public string NameColumn { get; set; }
public string DescriptionColumn { get; set; }
public string TimestampColumn { get; set; }
protected override MetaModel CreateModel(Type dataContextType)
{
// ???
}
}
このオンラインで適切なリソースを見つけることができませんでした。このクラスをフラッシュするにはどうすればよいですか?