【发布时间】:2018-12-14 10:12:09
【问题描述】:
我正在从“pro asp.net mvc3”一书中构建体育商店应用程序。在第 9 章中,我必须添加图像上传功能。我已经更新了我的域对象“产品”并将列添加到我的数据库中。在这些步骤之后,作者 steven sanderson 建议我们需要更新实体框架概念模型,以便 db 和我的域对象正确映射在一起。
我的解决方案中没有 sportsstore.edmx 文件,因为我们从 POCO 对象开始,本书的源代码也缺少 edmx 文件?
当我通过编辑产品上传图片时出现此错误?
不允许从数据类型 nvarchar(max) 到 varbinary 的隐式转换。使用 CONVERT 函数运行此查询。
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:不允许从数据类型 nvarchar(max) 到 varbinary 的隐式转换。使用 CONVERT 函数运行此查询。
我的产品类定义为:
public class Product
{
[HiddenInput(DisplayValue = false)]
public int ProductID { get; set; }
[Required(ErrorMessage="Please enter a Product Name")]
public string Name { get; set; }
[Required(ErrorMessage="Please enter product description")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[Required(ErrorMessage="Please enter product price")]
[Range(0.01, double.MaxValue,ErrorMessage="Please enter positive price")]
public decimal Price { get; set; }
[Required(ErrorMessage="Please enter product category")]
public string Category { get; set; }
public byte[] ImageData { get; set; }
[HiddenInput(DisplayValue = false)]
public string ImageMimeType { get; set; }
}
我的产品表定义为
【问题讨论】:
-
您在代码中将 ImageMimeType 声明为字符串,但它在数据库中被声明为二进制字段。
标签: asp.net-mvc entity-framework-4