2017-01-24 6 views
1

私はLINQ、特にLINQPadを習得しようとする経験豊富なSQL開発者です。私は、単純なMVC5アプリを作成し、私は学生のコントローラーで、次のコードを持ってAdventure Worksの2012年への参照を追加しました:Linqpadクエリエラー

namespace Linqpad.Controllers 
    { 
     public class PersonController : Controller 
     { 
      private AdventureWorks2012Entities db = new AdventureWorks2012Entities(); 

      public ActionResult Index() 
      { 
       var courses = db.Employees 
       .Include(p => p.PurchaseOrderHeaders) 
       .Where(p => p.Gender=="Male"); 
       return View(); 
      } 
} 
} 

予想通り、この作品。私は今Linqpadでこれを実行しようとしていますが、私は以下のエラーを受け取ります: ​​

Linqpadで実行するには、このクエリをどのようにリファクタリングできますか?

+0

'var courses ='を削除するか、ステートメントの末尾に ';'を追加してみてください – JamieD77

+1

エラーメッセージの提案ごとに言語をC#ステートメントに変更しようとしましたか?それが助けになるかどうかはわかりませんが、試してみるには数秒かかりません。 – Tim

+0

@ JamieD77、これを行うと「テキスト選択を実行できません:名前 'db'は現在のコンテキストに存在しません」と表示されます。私はTimsの提案も取り入れました。 – w0051977

答えて

3

に設定します。上部ツールバーには、「C#Expression」が設定されています。つまり、ウィンドウ内の式が自動的に評価され、出力領域にダンプされます。このモードではvar courses =は不要です。

言語モードを「C#ステートメント」に設定すると、入力したすべてのステートメントが評価され、末尾に.Dump()(またはConsole.WriteLine)を追加すると出力されます。あなたの声明は次のようになります:

var courses = db.Employees 
     .Include(p => p.PurchaseOrderHeaders) 
     .Where(p => p.Gender=="Male") 
     .Dump(); 

オプション>クエリ領域では、デフォルトの言語モードを変更できます。

+0

ありがとうございますが、私が今取得したエラーは次のとおりです:アセンブリ 'LINQPad、バージョン= 1.0.0.0、Culture = neutral、PublicKeyToken = 21353812cd654db5'から 'Linqpad.AdventureWorks2012Entities'タイプをロードできませんでした。 – w0051977

+0

@ w0051977これは新しい質問です。 Connectionのセットアップ方法。新しい質問を開始し、接続設定のスクリーンショットを追加してください。 –

0

LINQPad 5にIncludeを使用するには、EntityFramework.dllへの参照を含める必要があります。名前空間System.Data.Entity に追加Additional Referencesウィンドウでクエリプロパティ

  • クリックAddを表示して選択、またはAdditional Namespace Importsの下EntityFramework.dll
  • を参照するには、クエリウィンドウで、

    1. 押してF4をこれを行うには

      これらの手順を実行した後、Includeをテーブルに追加することができます。

      var courses = Employees 
           .Include(p => p.PurchaseOrderHeaders) 
           .Where(p => p.Gender=='M') 
           .Dump(); 
      

      出力を得るにはDump()を使用してください。言語もC# Statment(s)

  • +0

    ありがとうございますが、私が今取得したエラーは次のとおりです。アセンブリ 'LINQPad、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = 21353812cd654db5'から 'Linqpad.AdventureWorks2012Entities'タイプを読み込めませんでした。 – w0051977

    +0

    将来の参考として:LinqPadはC#で、* Include *をサポートしています。 –

    +0

    @ JamieD77、あなたは上記の私の質問に私の質問に答えることができますか?私はこれを動作させることができません。ありがとう。 – w0051977