下面的LINQ有几个Convert.ToInt32
方法。但它不起作用。参考互联网,它使用int.Parse
而不是转换。仍然给出错误。请告诉我一个方向来做到这一点。使用LINQ转换为Int
在下面查询tody
的数据类型是DateTime
var ds = (from a in dbSetInvHeader
join b in dbSetCustomer on a.BusinessEntityID equals b.Id
join c in dbSetFinancialInfo on b.Id equals c.Id
where (a.TotalAmount - a.AppliedAmount - a.ApplyToInvoiceCreditAmount) > 0
&& DbFunctions.AddDays(a.InvoiceDate, Convert.ToInt32(c.CreditPeriod)) >= tody
select new OverDueInvoices
{
CustomerName = b.Name,
InvoiceNo = a.InvoiceNo,
InvoiceAmount = a.TotalAmount - a.ApplyToInvoiceCreditAmount,
DueAmount = (a.TotalAmount - a.AppliedAmount - a.ApplyToInvoiceCreditAmount),
CreditAmount = a.ApplyToInvoiceCreditAmount,
NoOfDays = Convert.ToInt32(DbFunctions.DiffDays(tody, a.InvoiceDate))
}).ToList();
更新:
的代码使用实体框架上面LINQ引发错误:
当使用Convert.ToInt32
:
“LINQ to Entities不识别方法'Int32 ToInt32(System.Decimal)'方法,并且此方法不能转换为存储表达式。”
当使用int.Parse
:
“LINQ实体无法识别方法‘的Int32解析(System.String)’方法,和这种方法不能被翻译成表达店”。
什么是多数民众赞成抛出的错误? –
尝试[EntityFunctions](https://msdn.microsoft.com/en-us/library/system.data.objects.entityfunctions(v = vs.110).aspx)? –
我在“UPDATE 1”中添加了更多详细信息 – weeraa