更新实体框架概念模型

时间:2011-08-17 08:06:20

标签: asp.net-mvc entity-framework-4

我正在从书“pro asp.net mvc3”构建体育馆应用程序。在第9章中,我必须添加图像上传功能。我更新了我的域对象“Product”并将Columns添加到我的数据库中。在这些步骤之后,作者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; }
}

我的产品表定义为

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以通过右键单击文件夹(例如模型)生成edmx文件=> add =>新商品=> ADO.NET实体数据模型

确实很奇怪在数据库中你的图像是二进制文件,而在代码中它是一个字符串。 我只是用谷歌搜索了这本书,我发现他们使用 varchar(50)作为imageMimeType

ps:'Description'字段也应该是nvarchar(500)

来源:http://books.google.be/books?id=gzfFQrs_qQAC&pg=PA291&lpg=PA291&dq=sportstore+imagedata+mvc3&source=bl&ots=EXAaipp5VM&sig=bsw0_ARgqwYIlN6EbD47UT9yq6Q&hl=nl&ei=74xLTqfhLI7pOZCo8LUI&sa=X&oi=book_result&ct=result&resnum=1&ved=0CB4Q6AEwAA#v=onepage&q&f=false(向上滚动1页数据库模型,或参见本书第290页)

相关问题