为什么 LINQ to Entities 无法识别方法“System.String ToString()"? [英] Why LINQ to Entities does not recognize the method 'System.String ToString()?

查看:37
本文介绍了为什么 LINQ to Entities 无法识别方法“System.String ToString()"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 MVC3 Web 应用程序中出错.LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且该方法无法转换为存储表达式.

Getting error inside MVC3 web application. LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.

当我尝试使用 EF 从查询中获取值时:

when i try to fetch values using EF from query :

public class DataRepository
    {
        public mydataEntities1 dbContext = new mydataEntities1();

        public List<SelectListItem> GetPricingSecurityID()
        {
        var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing
                                     select new SelectListItem
                                         {
                                                Text = m.PricingSecurityID.ToString(),
                                                Value = m.PricingSecurityID.ToString()
                                         });

        return pricingSecurityID.ToList();
        }
    }

推荐答案

无法转换为 SQL.我想,理论上可以,但没有实现.

That can't be converted to SQL. I guess, in theory, it could, but isn't implemented.

您只需要在获得结果后进行投影:

You just need to perform your projection after you have your results:

var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing
                                     select m.PricingSecurityID).AsEnumerable()
    .Select(x => new SelectListItem{ Text = x.ToString(), Value = x.ToString() });

这篇关于为什么 LINQ to Entities 无法识别方法“System.String ToString()"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆