Как добавить проверку в классы сущностей
Проверка классов сущностей представляет собой процесс подтверждения того, что значения, вводимые в объекты данных, соответствуют ограничениям в схеме объекта, а также правилам, установленным для приложения.Проверка данных перед отправкой обновлений в основную базы данных рекомендуется, это уменьшает количество ошибок.Это также уменьшает потенциальное количество циклов передачи между приложением и базой данных.
Реляционный конструктор объектов обеспечивает частичные методы, которые дают возможность пользователям расширять сгенерированный проектировщиком код, который выполняется во время выполнения Вставок, Обновлений и Удалений из завершенных сущностей, а также во время и после отдельных изменений столбца.
Примечание |
---|
В этом разделе описаны основные этапы добавления проверки в классы сущностей с помощью реляционный конструктор объектов.Поскольку могло бы быть трудно следовать этим универсальным шагам, не обращаясь к определенному классу сущностей, было предоставлено пошаговое руководство, которое использует реальные данные.Подробные пошаговые инструкции для конфигурирования проверки с использованием реляционный конструктор объектов см. в Пошаговое руководство. Добавление проверки в классы сущностей. |
Добавление проверки для изменений данных в отдельном столбце
В этой процедуре показывается, как проверять данные при изменении значений в столбцах.Поскольку проверка выполняется в внутри определения класса (а не в интерфейсе пользователя), вызывается исключение, если значение не проходит проверку.Реализуйте обработку ошибок для кода в приложении, которое пытается изменять значения столбцов.
Для проверки данных при изменении значений столбца
Откройте или создайте новый файл классов LINQ to SQL Classes (.dbml) в реляционный конструктор объектов.(Дважды щелкните по файлу .dbml в Обозревателе решений.)
В реляционном конструкторе объектов щелкните правой кнопкой мыши по классу, для которого вы хотите добавить проверку, после чего щелкните по Просмотр кода.
Открывается Редактор кода с разделяемым классом для выбранного класса сущностей.
Поместите курсор в разделяемый класс.
Для проектов Visual Basic:
Разверните список Имя метода list.
Найдите метод OnCOLUMNNAMEChanging для столбца, в который требуется добавить проверку.
Метод 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); } }