Я работаю над новым проектом, который должен использовать Linq To SQL
. Меня попросили создать общий или многоразовый класс Linq To SQL
, который можно использовать для выполнения хранимых процедур.
В ADO.Net
Я знал, как это сделать, просто передав строку из того, что я хотел выполнить, и я мог бы передать разные строки для каждого запроса, который мне нужно запустить:
SqlCommand cmd = new SqlCommand("myStoredProc", conn); // etc, etc
Я борюсь с тем, как создать нечто подобное в Linq To SQL
, если это возможно. Я создал файл .dbml
и добавил к нему свою хранимую процедуру. В результате я могу вернуть результаты, используя следующий код:
public List<myResultsStoreProc> GetData(string connectName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.myResultsStoreProc();
return query.ToList();
}
Код работает, но они хотят, чтобы я создал один метод, который вернет любую хранимую процедуру, которую я ему скажу. Я искал в Интернете и общался с коллегами об этом и не смог найти способ создания повторно используемого хранимого класса proc.
Итак, существует ли способ создать повторно используемый класс Linq To SQL
для выполнения хранимых процедур?
Edit:
Что я ищу, если есть способ сделать что-то вроде следующего?
public List<string> GetData(string connectName, string procedureName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.procedureName();
return query.ToList();
}
Я рассмотрел документы MSDN на Linq To SQL
, и они показывают таблицу в IEnumerable
:
IEnumerable<Customer> results = db.ExecuteQuery<Customer>(
@"select c1.custid as CustomerID, c2.custName as ContactName
from customer1 as c1, customer2 as c2
where c1.custid = c2.custid"
);
Я ищу что-то очень общее, где я могу отправить строковое значение сохраненного proc, который я хочу выполнить. Если это невозможно, есть ли какая-либо документация о том, почему это невозможно сделать таким образом? Мне нужно доказать, почему мы не можем передать строковое значение имени процедуры для выполнения в Linq To SQL