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]
如果我使用像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 :(得分:1)
你必须这样做......
List<PropertyCompany> result = (List<PropertyCompany>)Session["summaryField"];
因为您存储了PropertyCompany
答案 1 :(得分:0)
我的查询不是表格。国际海事组织,你应该在List<T>
这样的地方解决:
Session["summaryField"] = summaryFieldDB.ToList();
和
var result = (List<PropertyCompany>)Session["summaryField"];
答案 2 :(得分:0)
Linq to Sql使用延迟加载(延迟加载)意味着在您使用.ToList()等完成表达式之前不会执行任何数据,即指定您希望数据的方式
将此更改为(添加到列表)
var summaryFieldDB = (from b in dc.PropertyCompanies where (b.SummaryField.Contains(txtSearch)) select b).ToList()
和(使用List进行投射)
List<PropertyCompany> result = (List<PropertyCompany>)Session["summaryField"];