24

私はできる

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();

以下のエラーが表示されます

'System.Data.Linq.Table' には 'Include' の定義が含まれておらず、タイプ 'System.Data.Linq.Table' の最初の引数を受け入れる拡張メソッド 'Include' が見つかりませんでした (F4 を押して using を追加します)ディレクティブまたはアセンブリ参照)

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

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

ただし、クエリの作成中に拡張メソッド「Include()」を使用することはできず、構文エラーが発生します。

4

3 に答える 3

37

LinqPad 経由で EF を使用している場合は、次のように.Include( http://msdn.microsoft.com/en-us/library/gg671236%28VS.103%29.aspx ) の厳密に型指定されたバージョンを使用することをお勧めします。

  1. LinqPad クエリを開く
  2. 右クリック -> クエリ プロパティ
  3. への参照を追加EntityFramework.dll
  4. 追加の名前空間のインポート タブを介して追加System.Data.Entity

次に、インテリセンスがあり、厳密に型指定されたバージョンの .Include を使用できます。たとえば、次のようになります。

var result =  OAS_Questions.Include(q => q.OAS_QuestionOptions);
于 2014-07-25T08:27:39.553 に答える
11

EntityFramework プロジェクトの DLL からTyped DataContext (ObjectContextまたは)を使用する必要があります。DbContextこれを行うには、次の手順を実行します。

  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. Entity Data Model を選択し、[ OK ] をクリックします。
  6. ServerLog on detailsおよび を指定し、[ OKdatabase ] をクリックします。

.Includeこれで、LinqPadでステートメントを使用できるようになります。

于 2014-06-27T16:31:54.767 に答える
4

デフォルトでは、Linqpad は、インクルードを許可しない Linq2Sql DataContext を使用します。

インクルード拡張メソッドを取得するには、プロジェクト アセンブリ (EF4.x /EF5) から Typed DataContext を使用します。

于 2013-02-23T10:36:41.907 に答える