2017-02-12 9 views
-3

に表示する:..私はビューにこの文の出力を取得しようとしているきゅうが、私はこのようになります方法持っている私のコントローラではMVC

var CarModelAndGear = from search in entity.CarsCategories 
            where search.ID == CarCategoryId[0] 
            select new { search.Manufacturer, search.Model, search.Gear }; 

ViewData["somename"] = CarModelAndGear; 

をこの方法では動作しません.. "エンティティへのLINQがメソッド 'Int32 get_Item(Int32)'メソッドを認識せず、このメソッドをストア式に変換できないというエラーが発生しました。" どうすれば ' CarModelAndGear 'ビューに?

+1

この方法は機能しません...問題を説明し、問題の一般的な記述を使用しないでください。 –

答えて

0

あなたのLINQクエリに新モデルを追加するには、[追加あなたの結果

public class CarViewResult 
{ 
    public string Manufacturer { get; set; } 
    public string Model { get; set; } 
    public string Gear { get; set; } 

    public CarViewResult(string manufacturer, string model, string gear) 
    { 
     this.Manufacturer = manufacturer; 
     this.Model = model; 
     this.Gear = gear; 
    } 
} 

のためのモデルを作成します

var CarModelAndGear = from search in entity.CarsCategories 
         where search.ID == CarCategoryId[0] 
         select new CarViewResult(search.Manufacturer, search.Model, search.Gear); 

ViewData["somename"] = CarModelAndGear.ToList(); 
2

プロバイダはできないので、あなたは最初の変数にカテゴリを格納する必要がありますリストのインデクサー方法を解釈してください:

int CatId = CarCategoryId[0]; 
var CarModelAndGear = from search in entity.CarsCategories 
         where search.ID == CatId 
         select new { search.Manufacturer, search.Model, search.Gear }; 
0

ここではLinqToSqlを使用しています。だからそれがしようとしているのは、Linq式をSQL文に変換することです。

C#からコレクション内のアイテムにアクセスすることはできますが、これをSQLに変換することはできません。

ではなく、これを試してみてください:

var id = CarCategoryId[0]; 
var CarModelAndGear = from search in entity.CarsCategories 
            where search.ID == id 
            select new { search.Manufacturer, search.Model, search.Gear }; 
0

あなたは、LINQを実行することができ、その後、ViewDataを

ViewData["somename"] = CarModelAndGear.ToList(); 

に割り当てるしかし、私はアプローチあなたがモデル化するためにすべてのものを組み合わせて、次に渡しますlive2に格納さによって記述好みますモデル

関連する問題