6

私はドライバーを作成しようとしていますlinqpadが、質問があります:

作成するときはDynamicDataContextDriver、クラスを作成する必要がありますTypedDataContext

  1. 何を入れたらいいの?
  2. どのように入力されますか?
  3. 設定方法を制御できますか?
  4. ここでオブジェクトデータベースを使用する場合、注意しなければならないことがありますか?

ここでいくつかの答えを見つけましたが、上記のすべての答えを見つけることができません。

4

1 に答える 1

3

型付きデータコンテキストは、クエリに適したプロパティ/フィールドを持つクラスです。これらのプロパティ/フィールドは通常、IEnumerablesまたはIQueryablesを返します。例えば:

public class TypedDataContext
{
   public IEnumerable<Customer> Customers { get { ... } }
   public IEnumerable<Order> Orders { get { ... } }
   ...
}

Visual Studioを使用して「LINQtoSQLクラス」または「ADO.NETエンティティデータモデル」のような新しいアイテムを作成すると、Visual Studioは、LINQPadが期待するものの優れた例である型付きデータコンテキストを作成します。型指定されたデータコンテキストは、メソッドを公開することもできます(たとえば、ストアドプロシージャまたは関数をマップするため)。実際、エンドユーザーにとって意味のあるものはすべて公開できます。

接続のあるLINQPadでクエリを実行すると、LINQPadは接続に関連付けられた型付きデータコンテキストをサブクラス化して、クエリがそのすべてのフィールド/プロパティにアクセスできるようにします。Customers.Dump()これが有効なクエリである理由ですCustomers。最初に型指定されたデータコンテキストをインスタンス化することなく、アクセスすることができます。

LINQPadドライバーは、2つの方法のいずれかで機能します。Visual Studioのように機能し、型付きデータコンテキストを自動的にオンザフライで構築するか(動的データコンテキストドライバー)、ユーザーが提供する既存のアセンブリから型付きデータコンテキストを抽出する(静的データコンテキストドライバー)ことができます。LINQPadで接続を追加すると、ドライバーが2つのリストボックスに表示されます(データコンテキストを自動的にビルドする=動的ドライバー、および独自のアセンブリから型指定されたデータコンテキストを使用する=静的ドライバー)。

型指定されたデータコンテキストは、クエリが実行されるたびにインスタンス化されます。そのプロパティは通常、遅延評価されたIEnumerables / IQueryablesを返すため、「入力」することを考えると役に立ちません。ただし、基になるデータソースにアクセスする方法を知る必要があります。これは、コンストラクターに引数を渡すことによって行われます。

LINQPadは通常、クエリの実行間でクエリのアプリケーションドメインを存続させます。これは、オブジェクトデータベースのドライバーを作成する場合に、キャッシュと最適化に役立つ場合があります。それ以外は、オブジェクトデータベースに関して特別な考慮事項はありません。

于 2012-12-20T01:48:23.250 に答える