1

Я использую ASP.NET MVC 4.5 и EF. Я импортирую хранимые процедуры в свою модель данных сущностей ADO.NET. У меня есть .edmx и XX.tt с моим StoreProcedure_Result.cs.MVC Entity Framework вызывает хранимую процедуру

Я использую

var result = dbcontext.SP(Param).AsEnumerable().First(); 

Моя проблема заключается в том, что эти хранимые процедуры, которые имеют

select count(id) as Count from table 

не появляется на моих SP_Result.cs

Любые идеи?

+0

Я бы открыть EDMX-файл и «Модель обновления из базы данных» и убедитесь, что хранимая процедура в вопросе выбора, чтобы добавить или обновить. – temarsden

+0

Я сделал это. Моя хранимая процедура появляется в моем .edmx, но она не появляется на моем _Result.cs ... Кроме того, если я ее изменю и поставлю «select id from table» вместо «select count (id) из таблицы» .. он появляется на моем _results.cs. Кажется, что это не похоже на синтаксис «count()». – Diego

+0

Вы все равно пытались вызвать хранимую процедуру? Класс «_Result.cs» может не создаваться в этих случаях, потому что это будет просто int. EF может не беспокоить создание выделенного типа только для представления int. Это мое лучшее предположение. – temarsden

ответ

1

Я просто пробовал это сам и не видел класс «_Result.cs», созданный либо для sproc, который просто возвращает count(). Я предполагаю, что класс _Result.cs не нужно создавать, потому что это всего лишь один int, и определенный тип не нужен. Я все еще мог назвать sproc. Вы можете получить Int, как это ...

var result = db.getCount().First(); 
int i = (int)result; 
+0

ОК, но в этом случае, когда я вызываю «var result = dbcontext.SP (Param) .AsEnumerable(). First();» где я могу получить результат count() из SP.? – Diego

+0

Это отлично работает для меня ... var result = db.getCount(). First(); int i = (int) результат; – temarsden

+0

Спасибо !!!! Оно работает... – Diego