возможно ли добавить метод расширения к IQueryable<T>
, а затем для моих Linq2Sql или EF или NHibernate или LinqToObjects определить его функциональность / как каждый репозиторий будет реализовывать этот метод / переводить этот метод в некоторый sql?
Например, представьте, что я хочу следующее: -
var result = (from q in db.Categories()
where q.IWishIKnewHowToCode("hi")
select q).ToList();
теперь код для метода расширения IWishIKnewHowToCode()
будет отличаться, когда он L2S, по сравнению с EF или LinqToObjects и т. Д.
Я не говорю о трубах и фильтрах здесь. Что я знаю как это сделать.
Итак, представьте, что если бы это был L2S, то этот метод сделал бы предложение linq Where
, но если бы репозиторий был .. скажем ... LinqToObjects, он бы сделал Take(10)
.
Возможно ли это?
(я не слишком уверен, как это официально называется ... о том, что я хочу сделать)