2013-12-18 35 views
6

データベースからコントローラのリストにデータを送信する際に問題があります。私はC#とMVCを初めて使用しているので、どんな助けも便利です!コードはタイプ 'System.Linq.IQueryable <int>'を 'int'に変換できません

public static List<FilterTree> GetAllUsers() 
    { 
     FilterTreeDBContext db = new FilterTreeDBContext(); 
     var userList = new List<FilterTree>(); 
     var device = new FilterTree(); 
     //This is the line where I get the error 
     device.ID = from a in db.FilterTree select a.ID; 

     userList.Add(device); 
     return userList; 
    } 

あります。&ハッピーホリデー!! :)

+0

問題の担当者とは何ですか? – Max

+0

FilterTreeはあなたのdbsetです。だからあなたのクエリから、整数のリストを取得しています。 FilterTreeのインスタンス変数IDのタイプは何ですか?私はあなたが得ているエラーから明らかなようにintであると思います。 intフィールドにリスト(Iqueryable )を格納しようとしています。この分析があなたの問題を解決するのに役立つことを願っています。 – AbhinavRanjan

+0

ありがとう@AbhinavRanjanの説明! – Cristian

答えて

12
device.ID = (from a in db.FilterTree select a.ID).First(); 

LINQクエリは怠け者である、とあなたが

ところでそうでなければ、リークが発生します、コンテキストをクローズするのを忘れない接続

using (var db = new FilterTreeDBContext()) 
{ 
    ... 
    return userList; 
} 
+0

ありがとうございました...それは働いた:) – Cristian

+2

@ Mihai-CristianRotariu、その場合、時間が経過したときに答えとしてそれを受け入れることを確認します。 –

2

限り値を要求した後にのみ実行されますフレームワークはクエリに複数のオブジェクトがあることを知っているので、次のように使用してください。

device.ID = (from a in db.FilterTree select a.ID).FirstOrDefault(); 
関連する問題