MySql Entity Framework Database First - первичный ключ = длинный? - PullRequest
1 голос
/ 20 февраля 2012

Я пытаюсь использовать поставщика MySql Entity Framework для небольшого проекта.Я всегда сталкивался с «причудами» при работе с MySql Connector (разработанным MySQL, а не DevArt).

Последнее, что я обнаружил, было то, что мои сущности, сгенерированные из базы данных, вместо этого получают longint для их полей Id, хотя тип в базе данных указан как SIGNED INTEGER, AUTO INCREMENT, PRIMARY KEY.

Единственное, о чем я могу думать, это то, что LAST_INSERT_ID() всегда возвращает long.Поскольку мои сущности полагаются на базу данных для создания значения идентификатора, возможно, MySQL Connector делает идентификаторы long для размещения извлечения идентификатора после вставки?

Самый простой обходной путь для всех проблем, с которыми я столкнулся, заключается впросто используйте SQL Server.Однако целью этого приложения является общий хостинг.Даже если вы платите за надстройку SQL Server, большинство общих хостов ограничивают экземпляры SQL Server до 200 МБ и допускают только одну или две базы данных.Это слишком мало, на мой взгляд.Те же хосты предлагают несколько баз данных MySQL по 1 ГБ бесплатно.Если вы перерастете это, у вас, вероятно, все равно должна быть выделенная коробка.

1 Ответ

1 голос
/ 30 марта 2012

MySQL всегда возвращает 64-битное int (или BIGINT) вместо 32-битного int. Вот почему вы получаете длинное вместо int.

См. Этот отчет об ошибке: http://bugs.mysql.com/bug.php?id=64084, и руководство по MySQL для LAST_INSERT_ID (): http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id.

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