Справочная информация. Первоначально я создал приложение на MVC3 и Entity Framework 4.1 (база данных первая и сгенерированный DBContext).Я следовал шаблону репозитория.Чтобы соответствовать требованиям DBA корпорации, мне нужно преобразовать весь доступ к данным в использование только SPROCS для продвижения базы данных.Я застрял на нескольких вещах, на которые я надеюсь получить ответы ...
- Функции вставки / удаления / обновления
Я создал свойВставка, удаление и обновление функций.Я добавил их в свою модель EDM и заполнил их на вкладке «Сопоставить сущность с функциями» в деталях сопоставления для соответствующей сущности.Из того, что я прочитал, у меня не должно быть изменений кода в моем классе репозитория.Это правильно?(Код ниже)
public void CreateReplacementReason (ReplacementReason replacementreason)
{
_db.ReplacementReasons.Add(replacementreason);
}
public void UpdateReplacementReason(ReplacementReason replacementreason)
{
var rr = FetchReplacementReason(replacementreason.PK_ReplacementReasonId);
rr.DF_IsActive = replacementreason.DF_IsActive;
rr.ReplacementReasonDesc = replacementreason.ReplacementReasonDesc;
}
- Возвращение Scope_Identity ()
Как должен выглядеть метод create в моем классе репозитория, который вызывает SPROC, для которого есть возвращаемое значение (scope_identity)?Я думал, что мог бы поместить оператор возврата в мой текущий метод и изменить тип возврата.Это, конечно, не сработало.
public int CreateReplacementReason (ReplacementReason replacementreason)
{
return _db.ReplacementReasons.Add(replacementreason);
}
И это SPROC, который вызывается после обновления, чтобы вернуть Scope_Identity ()
INSERT INTO [dbo].[ReplacementReason] ([ReplacementReasonDesc], [DF_IsActive], [CreatedDateTime])
SELECT @ReplacementReasonDesc, @DF_IsActive, @CreatedDateTime
SELECT SCOPE_IDENTITY() AS Id
Любая любая любая помощь будетоценили.