Obsługa procedury składowanej od strony Linq To Sql wygląda mniej więcej tak:
[Function(Name="dbo.getTable")]
public ISingleResult<getTableResult> getTable([Parameter(Name="DataSourceId", DbType="Int")] System.Nullable<int> dataSourceId)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), dataSourceId);
return ((ISingleResult<getTableResult>)(result.ReturnValue));
}
Następnie definiowana jest klasa (w tym przypadku) getTableResult:
public partial class getTableResult
{
private string _KolumnaA;
private string _KolumnaB;
...itd
Pytanie, co zrobić gdy procedura getTable() zwraca dane z różnych tabel, tabel o różnych strukturach. Jak zdefiniować klasę getTableResult by struktura zwracanego zbioru nie była zaszyta na sztywno, lecz dynamicznie się zmieniała w zależności od zwróconych danych.
A procedura w bazie w skrócie wygląda tak:
exec ('select * from ' + @NazwaTabeli)