0
我使用實體LINQ實體LINQ where子句
請找我的LINQ查詢 -
Using lcntxRT60Entities As New RT60Entities(EntityConnection)
Dim lstrDocumentWhereClause As String
lstrDocumentWhereClause = astrDocumentWhereClause & " AND it.TransactionType = " + aintTransactionType.ToString + " AND it.VoidIndicator = 0"
lstrDocumentWhereClause = lstrDocumentWhereClause & " AND it.RtRouteDetails.RouteNumber = " + aintRouteNumber.ToString
If adatFromDate.ToString IsNot Nothing And adatToDate.ToString IsNot Nothing Then
adatToDate = adatToDate.AddHours(23).AddMinutes(59).AddSeconds(59)
lstrDocumentWhereClause = lstrDocumentWhereClause & " AND (it.TransactionDateTime BETWEEN DATETIME'" & Convert.ToDateTime(adatFromDate).ToString("yyyy-MM-dd HH:mm") & "' AND DATETIME'" & Convert.ToDateTime(adatToDate).ToString("yyyy-MM-dd HH:mm:ss") & "')"
End If
Dim Documents = From CTH In lcntxRT60Entities.RtCstTrnHeader.Where(lstrDocumentWhereClause) _
Join C In lcntxRT60Entities.RtCustomer.Where(astrCustomerWhereClause) On CTH.RtCustomer.CustomerID Equals C.CustomerID _
Select CTH, C _
Order By CTH.RouteKey, CTH.VisitKey, CTH.TransactionKey
Dim DocumentDetails = From Document In Documents.ToList _
Select Document.CTH
Return DocumentDetails.Skip(aintStartRow).Take(aintPageSize).ToList
我有問題,我的where子句 -
lstrFilterCriteria = "it.DocumentPrefix + it.DocumentNumber LIKE '" & lstrValue.ToString().Trim() & "'"
此擲轉換錯誤。
如果我用這個
lstrFilterCriteria = "it.DocumentPrefix+SqlFunctions.StringConvert((integer)it.DocumentNumber) LIKE '" & lstrValue.ToString().Trim() & "'"
它扔語法錯誤。
如何轉換連接這兩列。 文檔前綴是字符串,文檔號是整數。 請建議。 Thnaks
你似乎混淆了Linq/Lamba表達式的字符串? – DavidG
@ DavidG-對不起,我沒有得到你,實際上我把where子句在哪裏串聯兩列。在sql中它會像select * from RtCstTrnHeader DocumentPrefix + CONVERT(nvarchar,DocumentNumber)like'as%' – Dilip
首先,'StringConvert'不可用於'int'。它採用可爲空的雙精度或可爲空的小數。我不知道DocumentNumber的類型,如果它是一個int,則應該將它轉換爲雙精度或十進制。然後,我不確定使用'(integer)variableName'是投入vb的方式,是嗎? –