C# 为SQLite编写验证层的最佳方法是什么

C# 为SQLite编写验证层的最佳方法是什么,c#,.net,sqlite,C#,.net,Sqlite,我正在使用SQLite的ADO.net提供程序。我想介绍一下SQLite的一些“特性”,比如在整数字段中允许使用字符串,在varchar(n)类型的字段中允许使用长度大于n的字符串。实现这种验证的最佳方法是什么?存储过程?触发器?我正在寻找一种适用于任何数据库的通用解决方案,而不仅仅是我的数据库模式。在您的c#对象中进行验证,而不是在SQLite数据库中使用类似于DataAnnotations或甚至可能的方法进行验证。我的个人经验是,您担心的几乎从来都不是问题。如果是,问题是由于严重错误的代码(

我正在使用SQLite的ADO.net提供程序。我想介绍一下SQLite的一些“特性”,比如在整数字段中允许使用字符串,在varchar(n)类型的字段中允许使用长度大于n的字符串。实现这种验证的最佳方法是什么?存储过程?触发器?我正在寻找一种适用于任何数据库的通用解决方案,而不仅仅是我的数据库模式。

在您的c#对象中进行验证,而不是在SQLite数据库中使用类似于
DataAnnotations
或甚至可能的方法进行验证。

我的个人经验是,您担心的几乎从来都不是问题。如果是,问题是由于严重错误的代码(在age中插入mothersmaidenname或其他内容)。保持它“不成问题”的最好方法是拥有(并使用)良好的数据访问层,有效地抽象数据库

可以添加列约束

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')
)

在“公司”环境中,您提出的建议将被视为bug,而不是特性。这就是特性被引用的原因。看看这里,你能修改ADO.NET提供程序吗?是的,提供程序的源代码可用,你能给出一些示例代码吗?还没有。:)我必须查看源代码,看看在哪里可以输入一些验证代码。它是哪个ADO.NET提供程序?