Quantcast
Channel: Entity Framework
Viewing all articles
Browse latest Browse all 10318

Created Unassigned: Full support for Transact-SQL LIKE operator [1323]

$
0
0
I wish that the Transact-SQL LIKE operator [TEXT](http://msdn.microsoft.com/en-us/library/ms179859.aspx) is fully supported by EF.
The following three ways are known to me:
```
var ordersQuery = context.Orders.Where(o => o.ShipName.StartsWith("Welling"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'Welling%'

var ordersQuery = context.Orders.Where(o => o.ShipName.EndsWith("Welling"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'%Welling'

var ordersQuery = context.Orders.Where(o => o.ShipName.Contains("Welling"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'%Welling%'
```

Unfortunately, the following is not the expected result:
```
var ordersQuery = context.Orders.Where(o => o.ShipName.Contains("We%ng"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'%We~%ng%' ESCAPE N'~'
```

The same Problem:
```
var ordersQuery = context.Orders.Where(o => o.ShipName.Contains("Well_ng"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'%Well~_ng%' ESCAPE N'~'

var ordersQuery = context.Orders.Where(o => o.ShipName.Contains("Well[h-k]ng"));

...
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipName] LIKE N'%Well~[h-k]ng%' ESCAPE N'~'
```

The SqlMethods.Like Method [TEXT](http://msdn.microsoft.com/en-us/library/system.data.linq.sqlclient.sqlmethods.like.aspx) is unsupported outside of a LINQ to SQL context.

Viewing all articles
Browse latest Browse all 10318

Trending Articles