我阅读了很多条目,但我没有找到解决我的(特殊?)问题的方法。开始了。
我有一个搜索字符串,它是一个数字和一个类型为(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 重载 ;)。
但是,如果有人会沿着这个线程出现并且知道如何去做,那么像 (2) 中的 e-SQL 解决方案会很好!