【发布时间】:2012-06-10 06:30:19
【问题描述】:
在我的基于 MVC 3 / SQL Server 的应用程序中,我想将 pdf 文档作为 blob 存储在数据库中。在我的模型中,我有这个属性:
public byte[] PdfData { get; set; }
读取文件并从文件流中获取字节相当简单,但是在尝试保存更改时出现错误
字节数组截断到长度为 4000
这当然是有道理的,因为文档大于默认的 4000 字节限制。但是我不允许将 maxlength 属性设置为超过 8000,这太小了。我知道我可以通过使用这样的图像数据类型来解决这个问题:
[Column(TypeName = "image")]
public byte[] PdfData { get; set; }
但据我了解,图像数据类型只是为了向后兼容,并且可能随时消失。我想要做的是使用varbinary(max) 数据类型。但是如何设置我的模型以在 SQL Server 中生成此数据类型的列?
附带说明一下,我目前在我的开发环境中运行 SQL Server CE,但该应用程序在部署时将针对常规 SQL Server 2008 数据库。不确定这是否相关。
【问题讨论】:
-
是的,我确实尝试过 [Column(TypeName = "varbinary(max)"] 只是为了得到错误:类型 varbinary(max) 不符合命名空间或别名。只有 PrimitiveTypes 可以无条件使用
标签: sql-server asp.net-mvc-3 model-view-controller blob