我读了很多条目,但是我找不到解决我(特殊?)问题的方法。 我们走了。
我有一个搜索字符串,它是一个数字和一个表格列,类型为(bigint,Null)。
我试过了:
1
Dim suche = "2012"
Dim nummern = (From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr)).Trim.Contains(suche)
Select t.TicketNr Order By TicketNr Descending).ToList
这里的问题是,即使没有“修剪”,双重转换也没有找到长数字20120000000000,例如所以结果不完整。因为似乎LINQ to Entity没有解决方案,所以我尝试使用LIKE进行E-SQL。
2
Dim suche = "%2012%"
Dim nummern = entity.Table.Where("it.longnumber LIKE @suche", New ObjectParameter("suche", suche))
导致类似的投射错误。如果表“longnumber”是一个字符串,那么上面给出的解决方案工作正常!
:)
解决方案有时非常简单!:
(From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr), 15, 0).Contains(suche)
Select t.TicketNr Order By TicketNr Descending).ToList
你必须使用StringConvert Overload;)。
e-SQL中的解决方案,如(2)中的解决方案会很好,如果有人会来这个线程并知道如何做到这一点!
答案 0 :(得分:2)
解决方案有时非常简单!!!:
(From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr), 15, 0).Contains(suche)
Select t.TicketNr Order By TicketNr Descending).ToList
你必须使用StringConvert Overload;)。
e-sql中的解决方案,如(2)中的解决方案会很好,如果有人会来这个线程并知道如何做到这一点!