LINQ-to-SQL supports matching many operations (including CRUDs) with stored procedures, but you lose the ability to link - i.e. you cannot just add (exp).Where(x=>x.IsActive) . One option is table functions (UDF) instead of stored procedures that request data; it also presents a tougher metamode (rather than SET FMT_ONLY ON , which is amazing).
Thus, your query methods can be compiled into a database; but note that Entity Framework does not support it , although LINQ-to-SQL does.
source share