Linq to SQL 中保存大值数据类型

假如我们需要在数据库中保存文件的二进制内容,以往的做法是在 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) 的大多数操作函数和其他一些重要特性。不再需要区分对待。

转载于:https://www.cnblogs.com/RChen/archive/2008/05/15/1198113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值