由于我所处理的大多数项目都是SQL Server 2005/2008数据库驱动程序,因此我想知道在我的VB.Net Framework 4.0代码中使用System.Data.SqlTypes类作为数据类型的含义。例如,目前我将整数变量定义为
Dim X as Integer
使用System.Data.SqlType类我将我的整数变量定义为
Dim X as System.Data.SqlTypes.SqlInt32
请评论对性能,序列化和数据绑定的影响。一个区别是所有变量都默认为Null。
答案 0 :(得分:1)
这是一个坏主意,因为如果有一天你需要从sql server迁移到另一个数据库,你必须将代码中的所有vars更改为正确的类型。 (以及所有铸件等......)
此外,如果您需要空变量,您可以随时使用
Dim x As Nullable(Of Integer)
此外,对于exaple整数是不可变值类型iso引用类型,如SqlInt32,并且更加优化。
值类型与参考:
http://msdn.microsoft.com/en-us/library/t63sy5hs%28v=vs.80%29.aspx
What is the difference between a reference type and value type in c#?
所以SqlTypes可能会变慢,也会迫使你永远留在sqlserver上。
还要考虑这些类型并非适用于所有框架版本,并且您的代码在某些情况下可能不是非常可重用,只是为了使用这些数据类型。
答案 1 :(得分:1)
我认为这个想法存在很多问题,序列化和数据绑定应该可行,我不担心性能单元这是一个问题。
虽然它会起作用,但我认为这不是一个好的设计。您最终将在与sql无关的区域中使用sqltypes。除了作为sql命令的参数之外,sqltypes没有优于nullables的优势,nullables更通用。