Обновление концептуальной модели Entity Framework - PullRequest
1 голос
/ 17 августа 2011

Я создаю приложение спортивного магазина из книги "pro asp.net mvc3". В главе 9 я должен добавить функцию для загрузки изображений. Я обновил свой доменный объект «Продукт» и добавил столбцы в свою базу данных. После этих шагов автор Стивен Сандерсон предположил, что нам нужно обновить концептуальную модель каркаса сущностей, чтобы db и объект моего домена отображались правильно.

В моем решении нет файла sportsstore.edmx, так как мы начали с объекта POCO и исходного кода для этой книги, в котором также отсутствует файл edmx?

Как я загружаю изображение, редактируя продукт, получая эту ошибку?

Неявное преобразование из типа данных nvarchar (max) в varbinary не допускается. Используйте функцию CONVERT для выполнения этого запроса.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: 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 Ответ

3 голосов
/ 17 августа 2011

Вы можете создать файл edmx, щелкнув правой кнопкой мыши папку (например, модели) => add => new item => ADO.NET Entity Data Model

действительно любопытно, что в базе данных ваше изображение является двоичным, а в коде - строкой. Я только что гуглил книгу и вижу, что они используют 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 в книге)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...