我正在使用SQLite的ADO.net提供程序。我想引导SQLite的一些“特性”,比如允许整数字段中的字符串,并允许在varchar(n)类型的字段中使用长于n的字符串。实现这种验证的最佳方法是什么?存储过程?触发?我正在寻找适用于任何数据库而不仅仅是我的数据库架构的通用解决方案。
答案 0 :(得分:5)
您可以添加列约束。
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 :(得分:1)
我个人的经验是,你担心的几乎不是问题。如果是,问题是由于严重错误的代码(将mothermaidenname插入年龄或某事)。保持“不成问题”的最佳方法是拥有(并使用)有效抽象数据库的良好数据访问层。
答案 2 :(得分:0)
使用DataAnnotations
或甚至Domain Model之类的内容在c#POCO this method个对象中验证,而不是在SQLite数据库中验证。