为了账号安全,请及时绑定邮箱和手机立即绑定

为什么LINQ to Entities无法识别方法'System.String ToString()

为什么LINQ to Entities无法识别方法'System.String ToString()

江户川乱折腾 2019-10-21 10:39:10
MVC3 Web应用程序内部出现错误。 LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.当我尝试使用EF从查询中获取值时: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();        }    }
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

那不能转换成SQL。我猜,从理论上讲,它可以,但是没有实现。


得到结果后,只需执行投影即可:


var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing

                                     select m.PricingSecurityID).AsEnumerable()

    .Select(x => new SelectListItem{ Text = x.ToString(), Value = x.ToString() });


查看完整回答
反对 回复 2019-10-21
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

这个怎么样。在此示例中,db中的VDN字段和Skill字段都是整数。我正在寻找来自两个领域的比赛,所以我有2个比较。


包括以下内容:


using System.Data.Objects.SqlClient; // needed to convert numbers to strings for linq

比较数字时,请执行以下操作:


        // Search Code

            if (!String.IsNullOrEmpty(searchString))

            {

                depts = depts.Where(d => SqlFunctions.StringConvert((double)d.VDN).Contains(searchString.ToUpper())

                || SqlFunctions.StringConvert((double)d.Skill).Contains(searchString.ToUpper()));

            }

        // End Search Code

工夫。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 1715 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信