Прежде всего, я искал решения, но, возможно, я не сделал это хорошо, потому что мне могут не хватать некоторых концепций.Entity framework не генерирует класс результатов
Итак, моя проблема: я разрабатываю приложение для работы с базой данных с использованием Entity Framework. Я создаю модель, используя «EF Designer from database», импортирую все таблицы, функции и хранимые процедуры. Проблема следующая. Когда C# генерирует код, он также генерирует класс, подобный «storedProcedureName_Result», который, как следует из названия, является результатом хранимой процедуры. C# генерирует код, как:
public virtual ObjectResult<uSP_ListSpecialities_Result> uSP_ListSpecialities()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<uSP_ListSpecialities_Result>("uSP_ListSpecialities");
}
и без результата:
public virtual ObjectResult<Nullable<int>> uSP_ListAvailableMedicBi()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>>("uSP_ListAvailableMedicBi");
}
Мне нужно использовать эти результаты, но C# не генерирует эти результаты для всех хранимых процедур. И это моя проблема, я понятия не имею, почему.
например: Эта хранимая процедура создает класс результата:
CREATE PROCEDURE uSP_ListSpecialities
AS
BEGIN
SELECT id, nome
FROM Especialidade
END
он генерирует uSP_ListSpecialities_Result
класс
но это один не делает:
CREATE PROCEDURE uSP_ListAvailableMedicBi
AS
BEGIN
SELECT P.biPessoa
FROM Pessoa P
LEFT JOIN Medico M
ON(M.biPessoa = P.biPessoa)
WHERE M.biPessoa IS NULL
END
Я побежал как на SQLSMS и оба вернули то, что предполагалось.
Спасибо заранее
Из того, что я помню, при импорте sp через дизайнера вы можете выбрать «Создать новый сложный тип». – Ric
@Ric Вы правы, но почему кто-то захочет генерировать сложный результат для процедуры, которая просто возвращает Nullable? –
MajkeloDev
Не знаю, не имеет особого смысла, может быть, причина? – Ric