2017-12-27 8 views
0

私はなぜlinqクエリからの私の返信が常に正しくないのか分かりません。Linqクエリの戻りエラー

[HttpGet] 
    public List<Programs> GetPrograms() 
    { 
     using (var context = new ProgramsDataContext1()) 
     { 

      var qry = (from a in context.Programs 

         join b in context.courselist on a.Prog_id equals(b.prog_id) 
         where a.Prog_id ==b.prog_id 
         orderby a.Programname 
         select new 
         { Prog_id =a.Prog_id,Programname=a.Programname, programlevel=a.programlevel, planname=a.planname, catalogNo=b.catalogNO, coursetitle=b.coursetitle, subject=b.subject 
         } 
        ).ToList(); 


      return qry ; 
     } 

    } 

qryには常に赤い下線が付きます。ここでの問題は何ですか?ありがとう。

+0

クラスプログラムはどのように定義されていますか?選択はプログラムのインスタンスを作成せず、匿名オブジェクトのインスタンスを作成します。最終的なToListは戻り値に一致しません。リスト Steve

+0

プログラムはテーブルクラスです。 – user788448

答えて

1

すでに参加しているので、where句は必要ありません。あなたの戻り値の型は同じではありません、それはあなたが得ているエラーです。現在、anonymousオブジェクトのリストを返しています。Programs

+0

私は両方のプログラムとカウンセラーのテーブルから列を返そうとしています。どのように正しいタイプを返すのですか?前もって感謝します。 – user788448

+0

@ user788448の場合、必要なデータをすべて返すために新しいpoco/dtoを作成し、 'List 'を送り返す必要があります。そして、あなたのクエリでは 'select'に 'new dto {}'を作成します –

0

匿名オブジェクトを作成するのではなく、このクラスのインスタンスを作成する代わりに、2つのクラスから必要なプロパティだけをリストするクラスを定義します。

public class ProgramsCourseDto 
{ 
    public int Prog_id {get;set;} 
    public string Programname {get;set;} 
    public int programlevel {get;set;} 
    public string planname {get;set;} 
    public int catalogNo {get;set;} 
    public string coursetitle {get;set;} 
    public string subject {get;set;} 
} 

[HttpGet] 
public List<ProgramsCourseDto> GetProgramsCourses() 
{ 
    using (var context = new ProgramsDataContext1()) 
    { 

     var qry = (from a in context.Programs 
        join b in context.courselist on a.Prog_id equals(b.prog_id) 
        orderby a.Programname 
        select new ProgramsCourseDto 
        { 
         Prog_id =a.Prog_id, 
         Programname=a.Programname, 
         programlevel=a.programlevel, 
         planname=a.planname, 
         catalogNo=b.catalogNO, 
         coursetitle=b.coursetitle, 
         subject=b.subject 
        }).ToList(); 
     return qry ; 
    } 
} 
+0

ありがとう!私のプログラムを解決する新しいProgramsCourseDtoクラスを作成します。 – user788448