Каков наилучший способ написания слоя проверки для SQLite? - PullRequest
3 голосов
/ 16 ноября 2009

Я использую ADO.net-провайдера SQLite. Я хочу обойти некоторые «особенности» SQLite, например, разрешить строку в целочисленном поле и разрешить строку длиннее n в поле типа varchar (n). Каков наилучший способ добиться такого рода проверки? Хранимые процедуры? триггеры? Я ищу универсальное решение, которое применимо к любой базе данных, а не только к моей схеме базы данных.

Ответы [ 3 ]

5 голосов
/ 18 ноября 2009

Вы можете добавить ограничения столбца.

create table example
( 
  age integer not null check (typeof(age)='integer'),
  name text not null check (length(name) between 1 and 100),
  salary integer check (salary is null or typeof(salary)='integer')
)
1 голос
/ 16 ноября 2009

Мой личный опыт показывает, что то, о чем вы беспокоитесь, почти никогда не является проблемой. Когда это так, проблема связана с неправильным кодом (вставка девичьей фамилии в возраст или что-то в этом роде). Лучший способ сохранить это «не проблема» - это иметь (и использовать) хорошие уровни доступа к данным, которые эффективно абстрагируют базу данных.

0 голосов
/ 16 ноября 2009

Подтвердите в своих объектах c # Domain Model POCO , а не в базе данных SQLite, используя что-то вроде DataAnnotations или, возможно, даже этот метод .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...