2013-02-23 8 views
12

を追加した後、私はLinqPad LINQのインクルード()拡張メソッドであっても参照

var result = OAS_Questions.Count (oasq => oasq.Id!=0); 
result.Dump(); 

とさえ

var result = OAS_Questions; 
result.Dump(); 

を行うことができるが、私は「質問」の子オブジェクトを含めるようにしようとしたときに発見されません

var result = OAS_Questions.Include("OAS_QuestionOptions"); 
result.Dump(); 

を通じて "Opitons" と言う私は、以下のエラー

を示しています

「System.Data.Linq.Tableは」 に「インクルード」の定義となし拡張メソッドが含まれていないタイプ の最初の引数「System.Data.Linq.Table」の可能性が を受け入れる "含めます]見つかった (F4キーを押してディレクティブまたはアセンブリ参照を使用して追加)

私は既に以下のアセンブリ参照への参照を追加しようとしました。

  1. System.Code
  2. System.Data
  3. System.Data.Entity
  4. System.Data.Linq
  5. System.Linq.Expressions
  6. System.Data.DataSetExtensions

しかし、クエリを作成する際には、 "Include()"という拡張メソッドは使用できません。 ror。

答えて

3

デフォルトでは、Linqpadはインクルードを行なわないLinq2Sql DataContextを使用します。含める拡張メソッドは、あなたがあなたのEntityFrameworkプロジェクトのDLLから型付きのDataContext(ObjectContextまたはDbContext)を使用する必要があり、プロジェクトのアセンブリ(EF4.x/EF5)

+0

は、型付きのDataContextへの参照を追加する方法については、こちらを参照してください。http://stackoverflow.com/ a/24456720/1943 –

6

から型付きのDataContextを使用して取得するには

。あなたは、次の手順を実行してこれを行うことができます。

  1. クリックして、アプリケーションの左上隅に接続のリンクを追加します。
  2. Choose Data ContextウィザードでUse a typed data context from your own assemblyオプションを選択します。
  3. ソリューションに適したLINQPadドライバオプション(LINQ to SQL、EF 4.0以下、またはEF 4.1以上)をクリックし、次にをクリックします。をクリックします。
  4. 右上隅にあるBrowseをクリックし、EFプロジェクトアセンブリを選択して選択します。
  5. エンティティデータモデルを選択し、OKをクリックします。
  6. Server,Log on detailsおよびdatabaseを指定し、OKをクリックします。

LinqPadで.Includeステートメントを使用できるようになりました。

22

あなたはLinqPad経由でEFを使用している場合は、より良い方法は、以下のように.Includehttp://msdn.microsoft.com/en-us/library/gg671236%28VS.103%29.aspx)の強く型付けされたバージョンを使用することです:

  1. あなたLinqPadクエリ
  2. 右クリック
  3. を開く - >クエリプロパティ
  4. System.Data.Entity
を追加する追加の名前空間のインポート]タブを経由して EntityFramework.dll
  • への参照を追加します。

    あなたが例えば、インテリセンスをしていると.INCLUDEの強く型付けされたバージョンを使用することができます。

    var result = OAS_Questions.Include(q => q.OAS_QuestionOptions); 
    
  • +0

    Entity Framework Coreの場合は、Microsoft.EntityFrameworkCore.dllアセンブリへの参照を追加し、追加の名前空間を追加します。Microsoft.EntityFrameworkCore –

    関連する問題