2013-05-21 3 views
1

Так что, если у меня есть запрос Oracle вроде этого:Вызов REGEXP_LIKE с помощью LINQ для лиц с Oracle

SELECT * FROM xyz WHERE REGEXP_LIKE(col1, '^[0-9]+$'); 

Как я могу позвонить REGEXP_LIKE с помощью LINQ для лиц с клиентом Oracle.DataAccess:

var q = from x in collection 
     where ??Oracle.REGEXP_LIKE(x.col1, "^[0-9]+$")?? 
     select x; 

Что-то вроде этого поддерживается с клиентом Oracle.DataAccess?

+1

Вы пытались **, где Regex.IsMatch (x.col1, "^ [0-9] + $") **? – Jith

+0

Да, но потом я получаю сообщение об ошибке «LINQ to Entities не распознает метод ... и этот метод не может быть переведен в выражение хранилища». – Jrop

ответ

0

Итак, решение для меня было просто открыть соединение с БД (ADO.NET) и выполнить необработанный SQL ... Я баловался попыткой создать пользовательскую функцию LINQ, но это тоже заняло бы чтобы понять, учитывая относительную простоту просто «взломать» его.