【问题标题】:queries in entity framework实体框架中的查询
【发布时间】:2011-06-09 09:35:11
【问题描述】:

我写了以下代码

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()' 方法,并且该方法无法转换为存储表达式。

【问题讨论】:

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


    【解决方案1】:

    这一行

    Resumeid=t.ResumeID.ToString()
    

    当你成功时会发生什么

    Resumeid=t.ResumeID
    

    ?

    或者简单的做:

    select new { t.ResumeID, t.isWizard }
    

    【讨论】:

    • 根据您的第一个建议,代码将无法编译。用你的第二个,第二行中的演员失败。
    【解决方案2】:

    正如消息中所说,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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2013-03-17
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多