Удалить таблицу базы данных со столбцом типа данных Image - PullRequest
0 голосов
/ 07 июля 2011

Я получил таблицу с этими столбцами:

  • PdfManuals:
  • Id (PK, int, not null)
  • Имя (nvarchar (150), не ноль)
  • ManufacturerId (int, not null)
  • ClientId (nvarchar (50), не нуль)
  • LanguageId (int, not null)
  • ImageSize (nvarchar (50), не нуль)
  • PdfName (nvarchar (150), не нуль)
  • Изображение (изображение, ноль)
  • Pdf (изображение, ноль)

И еще одна таблица: PdfManuals_Manufacturers

  1. Id (PK, int, not null)
  2. Имя (nvarchar (150), не ноль)
  3. ClientId (nvarchar (50), не нуль)
  4. LanguageId (int, not null)

И пытаемся выполнить это действие:

public ActionResult DeleteManufacturer(int id)
    {
        var manufacturer = _db.PdfManuals_Manufacturers.Where(x => x.Id == id).SingleOrDefault();
        var pdfManuals = _db.PdfManuals.Where(x => x.ManufacturerId == id).ToList();

        if (manufacturer != null)
        {
            _db.PdfManuals_Manufacturers.DeleteOnSubmit(manufacturer);
            _db.PdfManuals.DeleteAllOnSubmit(pdfManuals);
        }
        _db.SubmitChanges();

        return RedirectToAction("Manufacturers");
    }

Но я получаю эту ошибку:

The data types image and varbinary(max) are incompatible in the equal to operator.

Я использую ASP.NET MVC и LINQ-To-SQL Я не понимаю почему, может вы, ребята, можете мне помочь? :)

1 Ответ

1 голос
/ 07 июля 2011

Это, вероятно, вызвано LINQ: он проверяет реальное изменение значения (не всегда возможно, как вы можете видеть ...).

Вы можете избежать этой проверки с помощью предложения UpdateCheck = UpdateCheck.Never:

[Column(Storage="_myColumn", DbType="VarBinary", UpdateCheck=UpdateCheck.Never)]
public string myColumn
{
...
}

в сопоставлении столбца LINQ

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