使用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-core – 找不到Swashbuckle.AspNetCore SwaggerOpe
- WCF服务与ASP.NET Web Api
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-mvc – 如何使用post或get来检查控制器是否被调用?
- asp.net – NancyFx和Windows身份验证
- asp.net-mvc – 我的MVC 5模板中没有ApplicationRoleManage
- asp.net-mvc – 有没有人使用史蒂夫·桑德森的MvcIntegrati
- .NET Framework 3.5中有哪些有用的新ASP.NET功能?
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定模型
- asp.net-mvc – Chrome34忽略域名为“.cloudapp.net”的coo
- 在应用程序配置中找不到LocalSqlServer或连接字符
- asp.net-mvc – Asp.net内核MVC post参数始终为n
- 从ASP.Net MVC访问Active Directory使用C#
- asp.net-mvc – 使用@ Html.Partial渲染usercont
- asp.net-mvc – Href和Url.Content有什么区别?
- asp.net-mvc – 如何在多个Asp.net MVC应用程序中
- Asp.NET处理程序和通用处理程序
- asp.net-mvc-4 – MVC 4 – Web Api和JSON?
- asp.net – 在ASP MVC3中,如何使用uri执行控制器
- ASP.NET vNext Core CLR缺少type.IsPrimitive
