实体框架中的查询

时间:2011-06-09 09:35:12

标签: asp.net asp.net-mvc linq linq-to-entities

我写了以下代码

var resumeedit=(from t in db.Resumes where t.User.UserID==theUserID && t.ResumeID==theResumeID select t).Select(t=> new EditResumes
                 {
                     Iswizard=t.isWizard,
                     Resumeid=t.ResumeID.ToString()
                 }).First();
             EditResumes ed = (EditResumes)resumeedit;

并且它给出错误LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为商店表达式。

2 个答案:

答案 0 :(得分:1)

这一行

Resumeid=t.ResumeID.ToString()

当你做到这一点时会发生什么

Resumeid=t.ResumeID

或简单的做:

select new { t.ResumeID, t.isWizard }

答案 1 :(得分:0)

就像消息所说,L2E不会.ToString()。因此,请使用.AsEnumerable()将其带入L2O:

var resumeedit= (from t in db.Resumes 
                 where t.User.UserID==theUserID && t.ResumeID==theResumeID
                 select t)
                .AsEnumerable()
                .Select(t=> new EditResumes
                 {
                     Iswizard=t.isWizard,
                     Resumeid=t.ResumeID.ToString()
                 }).First();

这种演员阵容应该是不必要的:

 EditResumes ed = (EditResumes)resumeedit;