Ошибка вставки ObjectDataSource с бизнес-объектами

#c# #asp.net #linq #data-binding #objectdatasource

#c# #asp.net #linq #привязка данных #objectdatasource

Вопрос:

В основном ObjectDataSource использует бизнес-объекты (свойство DataObjectTypeName), используя Linq для Sql DataContext, используемый в FormView.

Мой первичный ключ — это целочисленный идентификатор, идентификатор.

Когда я устанавливаю для свойства CausesValidation значение true на кнопке вставки, оно буквально ничего не делает. Он даже не переходит к методу Insert уровня данных. Однако, если я установлю для него значение false, он перейдет к методу Insert, но параметр моего бизнес-объекта не имеет значений в его свойствах.

У меня была аналогичная проблема с методом обновления, и оказалось, что я забыл о параметре ID. Указание его в качестве параметра UpdateParameter решило проблему. Похоже, это проблема с Linq To SQL (поправьте меня, если я ошибаюсь).

Но теперь как насчет метода Insert? Чего мне здесь не хватает? Я действительно не хочу удалять DataObjectTypeName, потому что форма содержит около 40 полей, которые будут 40 параметрами для всех методов данных…

Помогите?

Ответ №1:

В какой-то момент произошел вызов метода DataBind() при событии загрузки страницы, и я использовал свой код в качестве пользовательского элемента управления. В любом случае … прокомментировал вызов метода DataBind, и это сработало.