2011-01-25 3 views
5

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

ответ

2

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

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' 
       ... 
} 
Смежные вопросы