(0x80004005): длина столбца слишком велика для столбца ModelHash - PullRequest
1 голос
/ 01 августа 2011

Сначала я использую код в EF 4.1 Update 1 с MySQL и соединителем 6.4.3 .NET. Я получаю следующее исключение:

MySql.Data.MySqlClient.MySqlException (0x80004005): длина столбца тоже большой для столбца ModelHash (максимум = 21845); используйте вместо этого BLOB или TEXT

Как мне сказать EF использовать текст вместо?

1 Ответ

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

Вы можете изменить тип базы данных в отображении:

public class YourDbContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<YourEntityType>().Property(e => e.ModelHash).HasColumnType("TEXT");
    }
}

Или с аннотациями данных

public class YourEntityType
{
    [Column(TypeName = "TEXT")]
    public string ModelHash { get; set; }
}

Но у меня есть подозрение, что ModelHash - это не ваша колонка, не так ли? Звучит как столбец из таблицы EdmMetadata, и в этом случае вы, вероятно, не сможете управлять этим способом. Это будет ошибка в EF или в коннекторе MySQL.

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