2011-03-11 136 views
3

我正在为文档创建实体数据模型。我想将文档正文存储为BLOB - 文档体将比varbinary max大。据我了解,我需要做的是创建一个Image类型的属性来存储文档正文。实体框架4:图像类型?

这里是我的问题:在属性面板中列出的类型不包括Image类型:

enter image description here

不EF4识别Image类型?如果是这样,我该如何创建一个Image类型的实体属性?谢谢你的帮助。

回答

7

Image已过时,你应该使用varbinary(MAX)代替 - 但是如果你使用的是大于2GB的文件(如你显然是因为varbinary(MAX)本来是足够了)你应该完全绕过这一点,并保存在磁盘上 - 用普通SQL Server 2008我建议一个filestream

根据this article这种做法也会为实体框架的工作(虽然文章是指旧的EF版本,我还没有尝试过亲自)

+0

+1你是第一个 – 2011-03-11 23:36:39

+0

谢谢 - 我想我误解了限制。我的数据实际上只有100K左右,所以varbinary(MAX)应该工作得很好。 – 2011-03-12 00:03:04

2

varbinary(max)是更换Image类型。 varbinary(max)的存储大小为2^31-1Bytes => 2GB。它应该是足够的。 Image类型已被弃用,并且可能会在未来版本的SQL Server中被删除。使用Binary类型处理您的数据,并将其长度设置为Max

Btw。在EF中使用这种数据量可能是一个非常糟糕的主意。

+0

谢谢 - 我不知道EF对BLOB数据有问题。你能否指点我的博客文章或文章,以便我可以了解更多信息?提示+1。 – 2011-03-12 00:01:11

+1

@David:我很害怕你想用大块的工作。 100K应该没问题,但你仍然应该非常小心地使用查询或表格分割中的投影,以便只在真正需要时才加载blob。 – 2011-03-12 10:18:52