1

我阅读了很多条目,但我没有找到解决我的(特殊?)问题的方法。开始了。

我有一个搜索字符串,它是一个数字和一个类型为(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 解决方案会很好!

4

1 回答 1

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 重载 ;)。

e-sql 中的解决方案,如(2)中的解决方案会很好,如果有人会沿着这个线程出现并知道如何去做!

于 2012-05-31T06:16:32.117 回答