Добавление проверки в классы сущностей
Примечание.
Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Технологии особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.
Проверка классов сущностей представляет собой процесс подтверждения того, что значения, вводимые в объекты данных, соответствуют ограничениям в схеме объекта, а также правилам, установленным для приложения. Проверка данных перед отправкой обновлений в основную базы данных рекомендуется, это уменьшает количество ошибок. Это также уменьшает потенциальное количество циклов передачи между приложением и базой данных.
Средства LINQ to SQL в Visual Studio предоставляют частичные методы, позволяющие пользователям расширить созданный конструктором код, который выполняется во время вставок, обновлений и удалений полных сущностей, а также во время и после изменения отдельных столбцов.
Примечание.
В этом разделе приведены основные шаги по добавлению проверки в классы сущностей с помощью конструктора O/R. Так как выполнить эти универсальные действия может быть трудно без ссылки на определенный класс сущностей, пошаговое руководство, использующее фактические данные, предоставляется.
Добавление проверки изменений в значение в определенном столбце
В этой процедуре показывается, как проверять данные при изменении значений в столбцах. Поскольку проверка выполняется внутри определения класса (а не в интерфейсе пользователя), вызывается исключение, если значение не проходит проверку. Реализуйте обработку ошибок для кода в приложении, которое пытается изменять значения столбцов.
Примечание.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Возможно, вы используете другой выпуск Visual Studio или разные параметры среды. Дополнительные сведения см. в разделе Персонализация среды IDE.
Для проверки данных при изменении значений столбца
Откройте или создайте файл классов SQL LINQ to SQL (
.dbml
файл) в конструкторе O/R. (Дважды щелкните.dbml
файл в Обозреватель решений.)В конструкторе O/R щелкните правой кнопкой мыши класс, для которого требуется добавить проверку, а затем выберите "Просмотреть код".
Открывается Редактор кода с разделяемым классом для выбранного класса сущностей.
Поместите курсор в разделяемый класс.
Для проектов Visual Basic:
Разверните список Имя метода.
Найдите метод 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(); }
Добавление проверки обновлений в класс entity
В дополнение к проверке значений во время изменений можно проверить правильность данных, когда осуществляется попытка обновить завершенный класс сущностей. Проверка во время предпринятого обновления позволяет сравнить значения в нескольких столбцах, если бизнес- правила требуют этого. В следующей процедуре показано, как осуществлять проверку, когда осуществляется попытка обновить завершенный класс сущностей.
Примечание.
Код проверки для обновлений в полных классах сущностей выполняется в разделяемом классе DataContext, а не в разделяемом классе заданного класса сущности.
Для добавления проверки во время обновления в классе сущностей
Откройте или создайте файл классов SQL LINQ to SQL (
.dbml
файл) в конструкторе O/R. (Дважды щелкните.dbml
файл в Обозреватель решений.)В реляционном конструкторе объектов щелкните правой кнопкой мыши по пустой области и выберите пункт Просмотр кода.
Открывается Редактор кода с разделяемым классом для
DataContext
.Поместите курсор в разделяемый класс для
DataContext
.Для проектов Visual Basic:
Разверните список Имя метода.
Нажмите UpdateENTITYCLASSNAME.
Метод
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); } }