使用ASP.NET MVC 3和实体框架4.1代码首先在SQL CE 4.0中存储图像
我试图在SQL Compact Edition(CE)数据库中存储/保存图像。
我在我的学生模型中声明为: [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。它有以下:
好吧,我唯一可以让它工作的方式是做所描述的here,也就是设置DbContext.Configuration.ValidateOnSaveEnabled = false。这是一个解决方法,因为帖子建议。 解决方法
对于那些遇到这个问题的人来说,Erik Ejlskov Jensen发布了
a working console application,这显示了这个bug的解决方法。正如OP所说,答案的关键部分是:
public StudentContext() { // Required to prevent bug - http://stackoverflow.com/questions/5737733 this.Configuration.ValidateOnSaveEnabled = false; } 已经找到了更好的解决方案。不要禁用验证。 更新2:使用[MaxLength]可防止任何验证错误,并且不需要禁用验证。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – VirtualPath位于当前应用程序根目录之外
- asp.net-mvc-3 – 如何修复此MVC网站错误:无法加载文件或程
- asp.net-core – 为Microsoft.CodeAnalysis.Common检测到版
- asp.net-mvc-routing – 在MVC 6控制器中使用urlhelper生成
- asp.net-mvc – 无法解析绑定敲除错误
- asp.net – 如何使用SMTP通过Exchange Server发送邮件
- 清除ASP.NET临时文件缓存的麻烦
- 数以百万计的匿名ASP.Net个人资料?
- 有AsIFnet标记的#IF DEBUG吗?
- ASP.NET 4.0中HTML编码的<%:%>括号
- asp.net – html元素的命名约定
- asp.net-mvc – SignalR 2依赖注入与Ninject
- asp.net-mvc – vNext. AspNet.Identity和自定义
- ASP.NET MVC 3使用身份验证
- asp.net-mvc – Web路由如何工作?
- asp.net-mvc – 使用Razor视图引擎 – 如何格式化
- asp.net-mvc-3 – 另一个数据库实例RavenDB MVC3
- asp.net core 2.0 webapi集成signalr(实例讲解)
- asp.net – AsyncPostBackTrigger和PostBackTrig
- asp.net-mvc – 找不到Nancy Razor Viewengine