大佬教程收集整理的这篇文章主要介绍了使用ASP.NET MVC 3和实体框架4.1代码首先在SQL CE 4.0中存储图像时出错,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的学生模型中声明为:
[column(Typename = "image")] public byte[] Photo { get; set; }
数据库创建的照片列的图像数据类型可以在这里看到:
问题是:
当我运行应用程序,并尝试保存一张3 MB照片的学生(例如),我得到一个例外:
validationError.Errormessage = "The field Photo must be a String or array type with a maximum length of '4000'."
SQL Server CE支持这些Data Types.在SQL Express和SQL Compact Edition(CE)之间的这个comparison中,我们通过使用图像数据类型支持SQL CE支持二进制(BLOB)存储。
形象应该做我想的工作。
我在这里做错了什么?这是一个bug吗?
注意:
我也尝试过MaxLength数据注释:
[column(Typename = "image")] [MaxLength(int.Maxvalue)] public byte[] Photo { get; set; }
但我得到这个例外:
Binary column with MaxLength greater than 8000 is not supported.
编辑:
我发现post发布了EF 4.1。它有以下:
好吧,我唯一可以让它工作的方式是做所描述的@L_616_3@,也就是设置DbContext.Configuration.ValidateOnSaveEnabled = false。这是一个解决方法,因为帖子建议。
public studentContext() { // required to prevent bug - http://stackoverflow.com/questions/5737733 this.Configuration.ValidateOnSaveEnabled = false; }
已经找到了更好的解决方案。不要禁用验证。
[博客文章更新]
更新:LINQ to SQL和EF Code First fame的@DamienGuard指出,一个更好和更多的提供商不可知的解决方案是使用MaxLength而不是Typename =“ntext”。
更新2:使用[MaxLength]可防止任何验证错误,并且不需要禁用验证。
以上是大佬教程为你收集整理的使用ASP.NET MVC 3和实体框架4.1代码首先在SQL CE 4.0中存储图像时出错全部内容,希望文章能够帮你解决使用ASP.NET MVC 3和实体框架4.1代码首先在SQL CE 4.0中存储图像时出错所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。