Entity Framework и Stored PRocedures, как удалить обнуляемые параметры - PullRequest
0 голосов
/ 07 июня 2011

Ну, я использую Model-First с генерацией кода DbSet. И теперь я хочу добавить несколько хранимых процедур.

Но код, который я получаю, выглядит так:

        public virtual ObjectResult<Nullable<int>> CountPostsInThread(Nullable<int> threadID, ObjectParameter postCount)
    {
        var threadIDParameter = threadID.HasValue ?
            new ObjectParameter("threadID", threadID) :
            new ObjectParameter("threadID", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>>("CountPostsInThread", threadIDParameter, postCount);
    }

Теперь, как мне избавиться от всех этих? Что-то не так с файлами tt или с моей хранимой процедурой? SP:

ALTER PROCEDURE dbo.sp_CountPostsInThread
(
    @threadID int,
    @PostCount int = 0 OUTPUT
)   
AS
    SELECT COUNT(*)
    FROM PostSet
    WHERE PostSet.ThreadID = @threadID 

1 Ответ

2 голосов
/ 08 июня 2011

Нет ничего плохого в шаблоне или хранимой процедуре. Параметры SP принимают значение NULL, поэтому EF делает их обнуляемыми. Тернарный оператор используется потому, что если вы передаете значение NULL, EF должен каким-то образом передавать тип параметра NULL для правильной настройки SqlParameter, используемого внутри.

...