Создание столбца varbinary в базе данных mysql с использованием кода сначала Entity Framework 4.1 - PullRequest
1 голос
/ 16 ноября 2011

Когда я пытаюсь создать varbinary столбец «Данные», используя структуру сущностей и метод кода сначала, определяя данные как.

Public Property Data() As Byte()

Проблема заключается в том, что при запуске программы сценарий, сгенерированный для этой таблицы, не указывает длину для varbinary, которая, очевидно, прерывает выполнение и возвращает синтаксические ошибки с сервера mysql.

CREATE TABLE `TestAction`(
    `ID` int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `Name` mediumtext NOT NULL, 
    `Data` varbinary, 
    `Tested` datetime NOT NULL, 
    `TestID` int NOT NULL);

Я уже пытался инициировать байтовый массив и добавил к свойству атрибут максимальной длины, но безуспешно.Кто-нибудь успешно сделал это?или может помочь, это будет высоко ценится

Ответ ----

Мне удалось решить эту проблему, используя свободный API, чтобы заставить структуру сущностей преобразовать мой byte () в varbinary изатем установка максимальной длины в связанном классе EntityTypeConfiguration.Я пробовал что-то подобное раньше, но ограничил длину именем типа в методе HasColumnType () так, чтобы ... HasColumnType ("varbinary (45), но это не сработало. Однако приведенная ниже строка кода решила мою проблему.

[Property](Function(P) P.Name).IsRequired().HasMaxLength(45).HasColumnType("varbinary")
...