Viemodel с хранимой процедурой - PullRequest
0 голосов
/ 07 октября 2010

Я следую инструкции Скотта Гу из Здесь , чтобы получить данные с помощью хранимой процедуры. Я устанавливаю тип возврата хранимой процедуры, удалив SProc на класс. Теперь мой вопрос заключается в том, можем ли мы установить viewmodel в качестве типа возврата хранимой процедуры, так как мой взгляд строго типизирован с моим viewmodel

Ответы [ 3 ]

0 голосов
/ 07 октября 2010

[Я еще ничего не сделал с ASP.NET MVC, так что это предложение может быть далеко, но ...]

Один из вариантов - создать класс ViewModel в конструкторе dbml, выполнивправая кнопка Нажать на> Add-> Class.Затем либо перетащите вашу хранимую процедуру в новый класс в конструкторе, либо, если это не удастся (как это часто бывает для меня), перетащите хранимую процедуру на поверхность конструктора и установите для ее типа возврата (Properties -> Return Type) значениеновый класс.

Это один из способов заставить хранимую процедуру возвращать пользовательский тип, который не является истинной сущностью LINQ to SQL, а не автоматически сгенерированной хранимой процедурой * Result class.(Поскольку я слышал, что передавать объекты модели в представление плохо, в идеале вы передаете объект ViewModel, верно?).

0 голосов
/ 12 октября 2010

Я написал представление базы данных вместо viewmodel, а затем перетащил представление в dbml и установил тип возврата хранимой процедуры для просмотра. Это решит мою проблему. Это может быть полезно для кого-то еще

0 голосов
/ 07 октября 2010

Вы можете связать возвращаемый тип хранимой процедуры с некоторым пользовательским типом: в .edmx design щелкните на импортированной хранимой процедуре и задайте имя импорта функции SomeCustomName и выберите тип возврата -> Entities -> SomeEntity.Теперь, имея хранимую процедуру, возвращающую модели сущностей, вы можете сопоставить эти модели с моделью представления, которая в конечном итоге возвращается в представление.Хорошей практикой считается использование моделей представления, адаптированных к представлениям, вместо прямой передачи транспортных объектов SQL.

...