Vb.net System.Data.SqlTypes类

Vb.net System.Data.SqlTypes类,vb.net,types,Vb.net,Types,由于我从事的大多数项目都是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。这

由于我从事的大多数项目都是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。

这是个坏主意,因为如果有一天您需要从sql server迁移到另一个数据库,那么您必须将代码中的所有变量更改为正确的类型。(以及所有铸件等)

此外,如果您需要空变量,则始终可以使用

Dim x As Nullable(Of Integer)
此外,例如,整数是可变值类型,类似SqlInt32的iso引用类型,并且更优化

值类型与引用:

因此,SqlTypes可能会变得更慢,并且会迫使您永远留在sqlserver上


还考虑到这些类型对于所有的框架版本都是不可用的,并且在某些情况下,您的代码可能仅仅因为使用这些数据类型而不可重用。

< P>我不认为这个想法有很多问题,序列化和数据绑定应该工作,并且我不担心性能UNITL。这是一个问题。 但是,虽然它会工作,我不认为这是一个好的设计。您最终将在与sql无关的区域中使用sqltypes。除了作为sql命令的参数之外,sqltypes与更通用的nullables相比没有任何优势

还不错,SqlInt32和friends仍然是一种值类型。