Привязка частичной модели ASP.NET MVC из хранимых процедур - PullRequest
2 голосов
/ 28 июля 2010

В настоящее время у меня есть набор хранимых процедур, которые вызываются для заполнения различных полей на странице.Я вызываю хранимые процедуры из класса LINQ to SQL, на который я их сбросил, и это прекрасно работает.Однако он автоматически генерирует (StoredProcedureName) имена классов результатов, с которыми мне приходится работать.

Есть ли в любом случае взять хранимую процедуру и связать результат с несколькими классами?Например, у меня есть хранимая процедура, которая получает информацию для записи в блоге.Я хочу связать эти данные в класс Post и класс User (для автора), однако я не извлекаю все данные из хранимой процедуры для заполнения всего объекта Post или объекта User (хранимая процедура возвращает только заголовок, содержание и имя автора).

Каков наилучший способ справиться с этим сценарием? Я открыт для изменения хранимой процедуры, но мне не придется возвращать данные, которые яя не собираюсь использовать просто для заполнения полного объекта, и я не могу использовать LINQ to SQL для запроса базы данных.

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Вы можете создать часть вашего DataContext и написать метод, который возвращает IMultipleResults, привязывая к каждому из ваших соответствующих классов [ResultType (typeof (ClassName))]], как показано здесь:

http://msdn.microsoft.com/en-us/library/bb399371.aspx

Или вы можете сохранить результаты хранимой процедуры в переменной, а затем LINQ-выбрать новые экземпляры ваших целевых классов, например:

var result = dataContext.your_stored_proc();

var post = result.Select(s => new Post { Id = result.Id, Title = result.Title });
0 голосов
/ 27 января 2015

Вы можете использовать эту библиотеку: https://github.com/mrmmins/C-StoreProcedureModelBinding

В этих классах используется отражение, и вам необходимо включить его в свой проект и создать экземпляр Generic.cs

...