Проблема с MySQL tinyint и кодом Entity Framework в первую очередь - PullRequest
3 голосов
/ 19 апреля 2011

Когда я хочу подключиться к MySQL с помощью Entity Framework (сначала код), я получаю эту ошибку:

(22,12) : error 2019: Member Mapping specified is not valid. The type 'Edm.Byte[Nullable=False,DefaultValue=]' of member 'Permission' in type 'News.Models.Author' is not compatible with 'MySql.tinyint[Nullable=False,DefaultValue=]' of member 'Permission' in type 'CodeFirstDatabaseSchema.Author'.

Имя столбца в db - Permission с типом tinyint.и ниже мой класс.

   public class Author
    {
     ...
     public byte Permission { get; set; }
     ...
    }

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

Это исправлено в Connector / Net 6.4.5, который еще не вышел.

http://bugs.mysql.com/bug.php?id=62135

0 голосов
/ 25 июня 2011

Вы явно отображаете его, используя Fluent API или что-то в этом роде? Поскольку я только что запустил код, а когда EF Code First сгенерировал таблицы базы данных, он автоматически использовал tinyint.

Изменить: я сделал это снова со следующим отображением Fluent API, и он все еще работал отлично.

mb.Entity<TestObject>()
  .Property(u => u.test)
  .HasColumnType("tinyint");

public class TestObject
{
  public long ID { get; set; }
  public byte test { get; set; }
}
0 голосов
/ 19 апреля 2011

Согласно этой таблице , вы должны использовать sbyte в качестве типа Author.Permission.

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