假如我们需要在数据库中保存文件的二进制内容,以往的做法是在 SQL Server 中使用 image 字段类型来存放。
按照我上篇帖子里提到的 Model -> DB 的开发方式,如果我们在 dbml 的设计视图中设置一个类属性的数据类型是 byte[] (CLR 类型)。
那么,db.CreateDatabase() 自动生成的数据库 schema 中,对应的数据库字段类型将是 varbinary(8000).
如果我们上传一个文件保存到该字段中,会发现类似这样的错误:
将截断字符串或二进制数据。语句已终止。...
解决的办法是在 dbml 设计视图中,将字段的 Server Data Type 设置为 varbinary(max) 即可。
在 SQL Server 2005 中,已经不推荐使用 image, text, ntext 这样的大值数据类型,取而代之的是 varbinary(max), varchar(max) 和 nvarchar(max). 其好处是这些标注 max 的字段类型能够支持 varbinary(n), varchar(n), nvarchar(n) 的大多数操作函数和其他一些重要特性。不再需要区分对待。
按照我上篇帖子里提到的 Model -> DB 的开发方式,如果我们在 dbml 的设计视图中设置一个类属性的数据类型是 byte[] (CLR 类型)。
那么,db.CreateDatabase() 自动生成的数据库 schema 中,对应的数据库字段类型将是 varbinary(8000).
如果我们上传一个文件保存到该字段中,会发现类似这样的错误:
将截断字符串或二进制数据。语句已终止。...
解决的办法是在 dbml 设计视图中,将字段的 Server Data Type 设置为 varbinary(max) 即可。
在 SQL Server 2005 中,已经不推荐使用 image, text, ntext 这样的大值数据类型,取而代之的是 varbinary(max), varchar(max) 和 nvarchar(max). 其好处是这些标注 max 的字段类型能够支持 varbinary(n), varchar(n), nvarchar(n) 的大多数操作函数和其他一些重要特性。不再需要区分对待。