2011-07-18 7 views
1
DataClassesDataContext dc = new DataClassesDataContext(); 
var summaryFieldDB = from b in dc.PropertyCompanies where (b.SummaryField.Contains(txtSearch)) select b; 

Session["summaryField"] = summaryFieldDB; 

を取得する方法summaryFiledDBにフィールドへのアクセスすることができます?今値セッション

使用であれば実行するプログラムがエラーを言うこの

System.Data.Linq.Table<PropertyCompany> result = (System.Data.Linq.Table<PropertyCompany>)Session["summaryField"]; 

このライン:型のオブジェクトをキャストすることができません「System.Data.Linq.DataQuery 1[PropertyCompany]' to type 'System.Data.Linq.Table 1 [PropertyCompany]

私は店の手順を使用している場合Like FullSearch

Session["search"] = dc.FullSearch("anv", true, true, true, true, true, true, true, true, true, true, true); 
System.Data.Linq.ISingleResult<FullSearchResult> b = (System.Data.Linq.ISingleResult<FullSearchResult>)Session["search"]; 
    foreach(var item in b) 
    { 
    //work with fields 
    } 

この作品は大丈夫です!

しかし、私はあなたが好きですしなければならないストアドプロシージャ

答えて

0

のコレクションを格納しているので、私はISNを問い合わせますテーブルT」。 IMO、あなたはここでList<T>のようなものに落ち着くはずです

Session["summaryField"] = summaryFieldDB.ToList(); 

var result = (List<PropertyCompany>)Session["summaryField"]; 
+0

タンクは、この働きました。あなたは人間にとって大きな男です。 – ashkufaraz

1

で動作するようにしたくない...

List<PropertyCompany> result = (List<PropertyCompany>)Session["summaryField"]; 

あなたがタイプPropertyCompany

+0

(リストとキャスト):「「System.Data.Linq.DataQuery'1は[PropertyCompany]」型への型のオブジェクトをキャストすることができませんSystem.Collections.Generic.List' 1 [PropertyCompany]」。 – ashkufaraz

0

をLINQのSQLへのあなたとあなたの式を終えるまでは、データが実行されないという意味繰延ロード(遅延ロード)を使用しています。 ToListメソッド()など、すなわち(追加ToListメソッド)にこれ、あなたのデータをする方法

変更を指定

var summaryFieldDB = (from b in dc.PropertyCompanies where (b.SummaryField.Contains(txtSearch)) select b).ToList() 

そして、この行がエラー言う

List<PropertyCompany> result = (List<PropertyCompany>)Session["summaryField"];