【问题标题】:Updating the Entity Framework Conceptual Model更新实体框架概念模型
【发布时间】: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


【解决方案1】:

您可以通过右键单击文件夹(例如模型)来生成 edmx 文件 => 添加 => 新项目 => ADO.NET 实体数据模型

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

ps:“描述”字段也应该是 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(数据库模型向上滚动一页,或参见本书第 290 页)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多