String 无法在Linq表达式中将字符串类型强制转换为数字类型
关于linq select语句中的数据类型转换,我遇到了一个令人头痛的问题,请如下所示,我想将下面一个字段的字符串类型hightlight转换为double类型,因此我利用convert.ToDouble方法来实现,但失败了。任何帮助或建议都将不胜感激 提前谢谢 var orders=从dao.CurrentDBContext.Order中的q开始 从dao.CurrentDBContext.OrderGoodsDetail中的d 其中q.billNum==d.billNum 选择新的 { q、 比尔纳姆, q、 订单来源, q、 sourceOddNum, q、 订单类型, q、 createdTime, q、 physicalNum, q、 店名, q、 按时付款, d、 规格代码, d、 规格名称, d、 颜色, d、 大小, d、 商品代码, d、 SKU, d、 标准销售价格, d、 薪酬, **StandardWeight=Convert.ToDoubled.StandardWeight,***//d.StandardWeight的日期类型是string,我想将其转换为double类型。 d、 采购编号 }; 你可以用let。请试试这个:String 无法在Linq表达式中将字符串类型强制转换为数字类型,string,linq,casting,double,String,Linq,Casting,Double,关于linq select语句中的数据类型转换,我遇到了一个令人头痛的问题,请如下所示,我想将下面一个字段的字符串类型hightlight转换为double类型,因此我利用convert.ToDouble方法来实现,但失败了。任何帮助或建议都将不胜感激 提前谢谢 var orders=从dao.CurrentDBContext.Order中的q开始 从dao.CurrentDBContext.OrderGoodsDetail中的d 其中q.billNum==d.billNum 选择新的 { q
var orders = (from q in dao.CurrentDBContext.Order
from d in dao.CurrentDBContext.OrderGoodsDetail.ToList() // adding tolist()
let d.StandardWeight =Convert.ToDouble(d.StandardWeight);
where q.billNum == d.billNum
select new
{
q.billNum,
q.orderSource,
q.sourceOddNum,
q.orderType,
q.createdTime,
q.physicalNum,
q.ShopName,
q.pay_time,
d.SpecificationCode,
d.SpecificationName,
d.Color,
d.Size,
d.CommodityCode,
d.SKU,
d.StandardSellingPrice,
d.pay_ment,
(Double)d.StandardWeight,
d.PurchaseNumber
});
编辑:Aron的解决方案是正确的+1我曾这样使用过,现在请记住:
select new KaizensMinVM
{
ID = Kaizens.ID,
NAME = Kaizens.NAME,
KAIZEN_METHOD_ID =(decimal)Kaizens.KAIZEN_METHOD_ID//just use cast here
};
试着把那条线换成
StandardWeight = (Double)d.StandardWeight,
前面的代码不起作用的原因是EntityFramework*基本上不支持.net Framework方法
但是,它确实支持Expression.Cast操作,而C不支持
*EntityFramework的个人分支确实支持此操作,但我无法将其签入主线。但是,它失败了,原因是什么?请包含完整的异常消息。LINQ to Entities无法识别“Double ParseSystem.String”方法,并且此方法无法转换为存储表达式。可能是重复的。感谢Alper的快速帮助,我按照您的方法尝试了它,但我们遇到了相同的异常。LINQ to Entities无法识别方法“Double-ToDoubleSystem.String”方法,此方法无法转换为存储表达式。请检查我的编辑,然后添加tolist我认为这可以解决此问题@Beyond8848,它根本不会更改您的LINQ表达式。感谢Alper,尽管我添加了tolist方法,它仍然不起作用。@AlperTungaArslan,请确认您是否使用EF的个人分支,对吗?据我们所知,大多数人几乎不可能分叉EF代码并添加一些代码来实现数据转换。问题是C编译器不支持您编写的代码。您可以使用Doubleobjectd.StandardWeight来填充它,但随后您将从EF中获得类似的运行时异常。@IvanStoev这是不幸的。解决这个问题的最简单方法是修复EF