读书人

查询值IQueryable怎么转换为为一个实体

发布时间: 2012-12-14 10:33:08 作者: rapoo

查询值IQueryable如何转换为为一个实体类型?
private void Window_Loaded(object sender, RoutedEventArgs e)
{
applies001 = hkhy001Context.DOApplies;//objectset集合赋值
projects001 = hkhy001Context.PUProjects;



var info1 = from a in applies001
join p in projects001 on a.ProjectID equals p.ProjectID
select new lmodel { FileCode = a.FileCode, Applicant = a.Applicant,
ApplyDate = a.ApplyDate, ProjectName = p.ProjectName,
Owner = p.Owner, ProjectAttach = p.ProjectAttach };
lmodel ttt = null;
ttt =info1;
listviewDoc.DataContext = ttt;//绑定
}

无法将类型“System.Linq.IQueryable<HKHY.Module.DocumentManagement.lmodel>”隐式转换为“HKHY.Module.DocumentManagement.lmodel”。存在一个显式转换(是否缺少强制转换?)
[最优解释]
select new
{
FileCode = a.FileCode,
Applicant = a.Applicant,
ApplyDate = a.ApplyDate,
ProjectName = p.ProjectName,
Owner = p.Owner,
ProjectAttach = p.ProjectAttach
};
[其他解释]
不过楼主肯定又希望结果集不是匿名类,好方便他往逻辑层传值。

俺很悲摧地告诉你,这个地方是没法绕过去的,只有两种方法处理,第一,写一个强转为lmodal的方法,这个太别扭了;第二,另外定义一个lmodalSummary的类,专门用于数据输出,实际上,这种类是广泛采用的,本身表结构直接应用于呈现就不科学。
[其他解释]

var info1 = from a in applies001
join p in projects001 on a.ProjectID equals p.ProjectID
select new lmodel { FileCode = a.FileCode, Applicant = a.Applicant,
ApplyDate = a.ApplyDate, ProjectName = p.ProjectName,
Owner = p.Owner, ProjectAttach = p.ProjectAttach };



listviewDoc.DataContext = info1.ToList();//绑定
or listviewDoc.DataContext = info1.ToList().FirstOrDefault();//绑定


[其他解释]
你的问题在于:
info1 查询出来是个lmodel 结果集合
而ttt 是lmodel 类的一个对象,所以你要么
listviewDoc.DataContext = info1.ToList();//绑定
要么这样:
listviewDoc.DataContext = info1.ToList().FirstOrDefault();//绑定
[其他解释]
ttt = info1.FirstOrDefault;
[其他解释]
lmodel这个实体类不能和你操作的实体类相同,你还不如直接new {}去掉new lmodel {}里面的lmodel
[其他解释]
info1.First();
[其他解释]
我勒个去,我看花眼了,根本不止一个错误,你结合一楼二楼的方案处理吧。
[其他解释]
ToList();

读书人网 >.NET

热点推荐