Как добавить проверку в классы сущностей
Проверка классов сущностей представляет собой процесс подтверждения того, что значения, вводимые в объекты данных, соответствуют ограничениям в схеме объекта, а также правилам, установленным для приложения. Проверка данных перед отправкой обновлений в основную базы данных рекомендуется, это уменьшает количество ошибок. Это также уменьшает потенциальное количество циклов передачи между приложением и базой данных.
Реляционный конструктор объектов обеспечивает частичные методы, которые дают возможность пользователям расширять сгенерированный проектировщиком код, который выполняется во время выполнения Вставок, Обновлений и Удалений из завершенных сущностей, а также во время и после отдельных изменений столбца.
Примечание
В этом разделе описаны основные этапы добавления проверки в классы сущностей с помощью Реляционный конструктор объектов.Поскольку могло бы быть трудно следовать этим универсальным шагам, не обращаясь к определенному классу сущностей, было предоставлено пошаговое руководство, которое использует реальные данные.Подробные пошаговые инструкции для конфигурирования проверки с использованием Реляционный конструктор объектов см. в Пошаговое руководство. Добавление проверки в классы сущностей.
Добавление проверки для изменений данных в отдельном столбце
В этой процедуре показывается, как проверять данные при изменении значений в столбцах. Поскольку проверка выполняется в внутри определения класса (а не в интерфейсе пользователя), вызывается исключение, если значение не проходит проверку. Реализуйте обработку ошибок для кода в приложении, которое пытается изменять значения столбцов.
Примечание
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.
Для проверки данных при изменении значений столбца
Откройте или создайте новый файл классов LINQ to SQL Classes (.dbml) в Реляционный конструктор объектов. (Дважды щелкните по файлу .dbml в Обозревателе решений.)
В реляционном конструкторе объектов щелкните правой кнопкой мыши по классу, для которого вы хотите добавить проверку, после чего щелкните по Просмотр кода.
Открывается Редактор кода с разделяемым классом для выбранного класса сущностей.
Поместите курсор в разделяемый класс.
Для проектов Visual Basic:
Разверните список Имя метода list.
Найдите OnCOLUMNNAME метод Изменение для столбца, в который вы хотите добавить проверку.
Метод OnCOLUMNNAMEChanging добавляется в разделяемый класс.
Добавьте следующий код, чтобы сначала убедиться, что значение было введено, и потом, чтобы гарантировать, что введенное значение для столбца приемлемо для приложения: Аргумент value содержит предложенное значение, так что добавьте логику, чтобы подтвердить, что это — допустимое значение:
If value.HasValue Then ' Add code to ensure that the value is acceptable. ' If value < 1 Then ' Throw New Exception("Invalid data!") ' End If End If
Для проектов C#:
Поскольку проекты C# автоматически не генерируют обработчики событий, то можно использовать IntelliSense для создания изменяющие столбец разделяемые методы.
Введите partial и потом пространство для доступа к списку доступных разделяемых методов. Щелкните изменяющий метод для столбца, для которого вы хотите добавить проверку. Следующий код напоминает код, который генерируется, когда выбирается изменяющий столбец разделяемый метод:
partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value) { throw new System.NotImplementedException(); }
Добавление проверки для обновлений в класс сущностей.
В дополнение к проверке значений во время изменений можно проверить правильность данных, когда осуществляется попытка обновить завершенный класс сущностей. Проверка во время предпринятого обновления позволяет сравнить значения в нескольких столбцах, если бизнес- правила требуют этого. В следующей процедуре показано, как осуществлять проверку, когда осуществляется попытка обновить завершенный класс сущностей.
Примечание
Код проверки для обновлений в полных классах сущностей выполняется в разделяемом классе DataContext, а не в разделяемом классе заданного класса сущности.
Для добавления проверки во время обновления в классе сущностей
Откройте или создайте новый файл классов LINQ to SQL Classes (.dbml) в Реляционный конструктор объектов. (Дважды щелкните по файлу .dbml в Обозревателе решений.)
В реляционном конструкторе объектов щелкните правой кнопкой мыши по пустой области и выберите пункт Просмотр кода.
Открывается Редактор кода с разделяемым классом для DataContext.
Поместите курсор в разделяемый класс для DataContext.
Для проектов Visual Basic:
Разверните список Имя метода list.
Нажмите кнопку ОбновитьENTITYCLASSNAME.
Метод UpdateENTITYCLASSNAME добавляется в разделяемый класс.
Обратитесь к отдельным значениям в столбце, используя аргумент instance, как показано в следующем коде:
If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then Dim ErrorMessage As String = "Invalid data!" Throw New Exception(ErrorMessage) End If
Для проектов C#:
Поскольку проекты C# автоматически не генерируют обработчики событий, то можно использовать IntelliSense для создания изменяющего столбец разделяемого метода UpdateCLASSNAME.
Введите partial и потом пространство для доступа к списку доступных разделяемых методов. Щелкните метод обновления для класса, для которого вы хотите добавить проверку. Следующий код напоминает код, который генерируется, когда выбирается разделяемый метод: UpdateCLASSNAME:
partial void UpdateCLASSNAME(CLASSNAME instance) { if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y)) { string ErrorMessage = "Invalid data!"; throw new System.Exception(ErrorMessage); } }