2011-01-02 4 views
1

В mysql я объявлял поля типа unsigned int. Они по умолчанию были INT (10) UNSIGNED. В моем коде C#, когда я пытаюсь прочитать эти значения для типа uint, он дает мне ошибку: «не может преобразовать long в uint». Есть что-то, что мне не хватает здесь. Я думал, что BIGINT должен быть длинным и int (10) unsigned должен был быть uint? Я использую рамки сущности читать в значениях ... Благодаряunsigned int mysql in C#

КОД

from employee in model.employees 
select new EmployeeEntity { 
    EmpID = employee.EmpID, 
    FirstName=employee.FirstName 
}; 

EmpID объявлен как UNSIGNED INT 10 в MySQL

EmployeeEntity объявляет EmpID, как uint (я пробовал uint32, а). Однако линия

Назначение «EmpID = employee.EmpID» дает мне ошибку ...

+0

Пожалуйста, покажите нам свой код. – SLaks

+0

Какой поставщик EF вы используете? – citronas

+0

отредактировал сообщение, чтобы включить фрагменты кода – user275157

ответ

0

Это проблема с поставщиком. Он преобразует типы между СУБД и приложением с ошибками. Я рекомендую вам обратиться за поддержкой или сменить поставщика.

Что касается меня - я использую Devart dotConnect для MySQL. Его картографическая таблица представлена ​​здесь - http://www.devart.com/dotconnect/mysql/docs/DataTypeMapping.html

+1

Вы уверены, что это проблема с провайдером? - Ниже приведен запрос функции для Entity Framework, который до сих пор не поддерживает это, так что это не указывает на то, что проблема заключается не в поставщике персистентности (и, следовательно, не разрешается путем переключения на другой, если он когда-либо доступен), но один уровень выше, в EF вообще? https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/2085127-support-unsigned-integer-eg-uint-properties-an – juniper

+0

Кроме того, у меня есть аналогичная проблема с SQL Anywhere , но касательно письма (чтение тоже было проблемой, но только для первичных ключей, и мы могли бы это решить): http://stackoverflow.com/questions/17142250/ef-4-0-30319-sql-anywhere-11-0 -1-запись-UINT-колонный терпит неудачу. Разве у вас есть более глубокое понимание в то же время и может знать, как я могу это решить? – juniper

0

звуки, как вопрос с EF Provider. Возможно, значение просто извлекается как длинное. Но так как вы знаете его uint, вы можете просто бросить его от долгого до uint. Но попробуйте проверить, существует ли более новая версия поставщика EF, которая правильно отображает типы.

+0

Я использую инфраструктуру сущности ASP.net 4.0. – user275157

+0

И последний разъем mysql. Подумайте о его 6.3.5 – user275157

+0

Привет @ntziolis, у меня есть аналогичная проблема с SQL Anywhere, но в отношении написания: http://stackoverflow.com/questions/17142250/ef-4-0-30319-sql-anywhere-11-0 -1-writing-uint-column-fail У вас есть более глубокое понимание в то же время и может знать, как я могу это решить? – juniper