아래 LINQ에는 몇 가지 Convert.ToInt32
방법이 있습니다. 그러나 그것은 효과가 없습니다. 인터넷을 참조하면 변환 대신 int.Parse
이 사용됩니다. 여전히 오류가 발생합니다. 이것을 할 방향을 보여주십시오. Convert.ToInt32
를 사용하는 경우LINQ를 사용하여 Int로 변환
: LINQ 오류가 발생 위 대한
코드는 엔티티 프레임 워크를 사용하고 있습니다 :
아래 쿼리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 to Entities가 'Int32 ToInt32 (System.Decimal)'메서드를 인식하지 못하고이 메서드를 저장소 식으로 변환 할 수 없습니다."
int.Parse
사용 ".있어서 'int32를 파싱 (선택 System.String)'방법 및이 방법을 인식하지 않는 엔티티 LINQ가 저장 식으로 변환 될 수 없다"
을
에
null
을 변환하는 동안 그래서 당신이InvalidCastException
을 얻을 수(int)
에 캐스팅 피하기 위해 더 좋을 것Nullable<int>
또는int?
를 반환? –[EntityFunctions] 시도 (https://msdn.microsoft.com/en-us/library/system.data.objects.entityfunctions (v = vs.110) .aspx)? –
"UPDATE 1"에 추가 정보가 더 추가되었습니다. – weeraa