У меня есть модель, которая сопоставляется с базой данных через EF7. Все свойства идентичны отображаемым столбцам таблицы.Entity Framework 7 Сохраненная процедура Результат для модели
Теперь у меня есть хранимая процедура, которая возвращает некоторые вложенные столбцы, но основой по-прежнему является отображаемая модель.
Это моя модель (Entity), которая сопоставлена с Table1 в моей базе данных.
public partial class Table1 { public int id { get; set; } public bool Column1{ get; set; } public int Column2 { get; set; } public int Column3 { get; set; } public int Column4 { get; set; } public int Column5 { get; set; } }
Мой StoredProcedure возвращает все эти столбцы и дополнительно столбца из другой таблицы, которая содержит дополнительную информацию об этом объекте.
Так мой StoredProcedure выглядит следующим образом:
CREATE PROCEDURE Table1_Select
AS
BEGIN
SELECT Column1,
Column2,
Column3,
Column4,
Column5,
Table2.JoinedColumn1
FROM Table1
JOIN Table2 on Table1.ID = Table2.ID_Table1
END
Моя идея в том, чтобы просто добавить свойства в модели
public string JoinedColumn1 {get; set;}
Это работает для выполнения StoredProcedure, но он не работает, как только поскольку я хочу получить одну организацию с
MyContext.Table1.FirstOrDefault(t=>t.id == 1)
это всегда возвращает сервер Ошибка 500 в Fiddler, тогда как выполнение хранимой процедуры с «Table1.FromSql (« Table1Select ») работает нормально.
Или мне нужно решить, следует ли использовать StoredProcedures для моей модели или доступа к объектам напрямую?
Любые лучшие практики или решения для этого?
Большое спасибо заранее. Nicn
Почему не процедуры магазина, включенных в которой проект с использованием Entity Framework Database First подход? –
Как добавить StoredProcedures в команду Scaffold? Я только нашел [эту ссылку] (https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes- (октябрь-1, -2015) # table-selection-in-reverse-engineering), которая гласит: t для таблиц или -s для схем ... – nicn