首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-12-14 
查询值IQueryable如何转换为为一个实体类型?private void Window_Loaded(object sender, RoutedEventArgs

查询值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();

热点排行