LINQ to Entity VB - 将Long转换为包含或类似的字符串

时间:2012-05-30 13:04:13

标签: linq entity

我读了很多条目,但是我找不到解决我(特殊?)问题的方法。 我们走了。

我有一个搜索字符串,它是一个数字和一个表格列,类型为(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)中的解决方案会很好,如果有人会来这个线程并知道如何做到这一点!

1 个答案:

答案 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)中的解决方案会很好,如果有人会来这个线程并知道如何做到这一点!