EntityFramework Процедура или функция '' ожидает параметр '', который не был предоставлен - PullRequest
10 голосов
/ 22 марта 2010

Я прошу прощения за то, что задал простой вопрос, однако не могу найти причину этой ошибки.

Я использую Entity Framework для выполнения хранимой процедуры и передаю четыре параметра, однако база данных SQL, похоже, их отклоняет. Кто-нибудь может указать мне правильное направление?

Мой код:

ObjectResult<SearchDirectoryItem> resultList = container.ExecuteStoreQuery<SearchDirectoryItem>("SearchDirectoryEntries",
            new SqlParameter("@DirectoryId", search.DirectoryId),
            new SqlParameter("@Latitude", point.Latitude),
            new SqlParameter("@Longitude", point.Longitude),
            new SqlParameter("@Range", search.RangeMiles));

Который выдает ошибку:

Процедура или функция 'SearchDirectoryEntries' ожидает параметр '@DirectoryId', который не был предоставлен.

Сгенерированный SQL:

exec sp_executesql N'SearchDirectoryEntries',N'@DirectoryId int,@Latitude decimal(7,5),@Longitude decimal(6,5),@Range int',@DirectoryId=3,@Latitude=53.36993,@Longitude=-2.37013,@Range=10

Хранимые процедуры:

ALTER PROCEDURE [dbo].[SearchDirectoryEntries]
@DirectoryId int,
@Latitude decimal(18, 6),
@Longitude decimal(18, 6),
@Range int

Большое спасибо.

1 Ответ

22 голосов
/ 10 июня 2011

Параметр commandText в вашем запросе неверен. Это должен быть вызов хранимой процедуры с параметрами вместо просто имени хранимой процедуры:

ObjectResult<SearchDirectoryItem> resultList = container.ExecuteStoreQuery<SearchDirectoryItem>(
    "Exec SearchDirectoryEntries @DirectoryId, @Latitude, @Longitude, @Range",
     new SqlParameter("DirectoryId", search.DirectoryId),
     new SqlParameter("Latitude", point.Latitude),
     new SqlParameter("Longitude", point.Longitude),
     new SqlParameter("Range", search.RangeMiles));

Также не забудьте удалить '@' из конструктора SqlParameter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...