C#中的unsigned int mysql

时间:2011-01-02 14:10:02

标签: c# mysql linq entity-framework

在mysql中,我声明了unsigned int类型的字段。他们默认为INT(10)UNSIGNED。在我的c#代码中,当我尝试将这些值读入uint类型时,它给出了一个错误说法 “不能长期转换为uint”。 这里有什么我想念的吗?我认为BIGINT应该是长的并且int(10)unsigned应该是uint? 我正在使用实体框架来读取值... 感谢

代码

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

EmpID在mysql中声明为UNSIGNED INT 10

EmployeeEntityEmpID声明为uint(我也尝试过uint32)。但行

作业“EmpID = employee.EmpID”给我错误...

2 个答案:

答案 0 :(得分:0)

听起来像EF提供商的问题。可能只是将值检索为long。但是既然你知道它是一个uint,你可以简单地将它从长时间转换为uint。 但请尝试检查是否有更新版本的EF Provider正确映射类型。

答案 1 :(得分:0)

这是提供商的麻烦。它会在DBMS和应用程序之间转换错误类型。我建议您询问他们的支持或更改提供者。

至于我 - 我正在使用Devart dotConnect for MySQL。它的映射表在这里提供 - http://www.devart.com/dotconnect/mysql/docs/DataTypeMapping.html