Linq to SQL - есть ли способ сопоставить метод расширения с функцией SQL / хранимой процедурой? - PullRequest
5 голосов
/ 25 января 2011

У меня есть метод расширения для типа DateTime, который я хотел бы использовать в своем Linq to Sql.К сожалению, делать ToList () и затем использовать метод расширения не вариант.Есть ли способ сопоставить метод расширения с реальной функцией SQL?

1 Ответ

2 голосов
/ 25 января 2011

Не как метод расширения, нет;сопоставленные функции должны вызываться как функции экземпляра из контекста данных, т.е.

partial class MyDataContext
{
     [Function(Name="MySqlFunctionName", IsComposable=true)] 
     public ReturnType FunctionName(...args...) 
     { ... optional C# impl for AsEnumerable(),
           else throw NotImplementedException... }
}

, и использоваться в некоторой форме, такой как:

using(var dc = new MyDataContext(...))
{
     var qry = from ...
               where dc.FunctionName(row.CreationDate) == 'Whatever'
               ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...