2023-02-17 532
在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();
}
}
无法转换为SQL.从理论上讲,我想它可以,但没有实施.
获得结果后,您只需要执行投影:
var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing
select m.PricingSecurityID).AsEnumerable()
.Select(x => new SelectListItem{ Text = x.ToString(), Value = x.ToString() });
如果已经是字符串,为什么首先要打电话给ToString?我怀疑LINQ中未包含翻译到实体,因为它毫无意义.将您的选择子句更改为:
select new SelectListItem
{
Text = m.PricingSecurityID,
Value = m.PricingSecurityID
}
如果您真的需要做一些Linq不支持实体的事情,请使用AsEnumerable从数据库查询过渡到程序中:
public List<SelectListItem> GetPricingSecurityID()
{
return dbContext.Reporting_DailyNAV_Pricing
.Select(m => m.PricingSecurityID)
.AsEnumerable() // Rest of query is local
// Add calls to ToString() if you really need them...
.Select(id => new SelectListItem { Text = id, Value = id })
.ToList();
}
我也同意杰森的反对意见,顺便说一句.您最好返回在其他地方渲染的List<string>.
还要注意,如果您 Just 要使用单个select子句或where子句,则查询表达式确实不会添加太多 – 调用Linq扩展方法可以最终以更少的混乱,尤其是如果要调用不支持的方法(例如ToList).
因为它试图将其转换为SQL,但不能将其转换为SQL.拨打ToString的电话,然后在返回呼叫者之前进行投影.因此,用
替换您的select子句
select m.PricingSecurityID
然后说
return pricingSecurityID
.AsEnumerable()
.Select(x => x.ToString())
.Select(x => new SelectListItem { Text = x, Value = x })
.ToList();
另外,我注意到您正在混合使用UI问题和数据查询问题.这通常是一个不好的做法.的确,您应该只返回ID列表,然后让代码的UI部分担心将其罚款到正确的形式.
以上所述是小编给大家介绍的为什么LINQ to Entities不承认'System.String ToString()方法?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://www.77isp.com/post/34272.html
=========================================
https://www.77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态