在mysql中,我声明了unsigned int类型的字段。它们缺省为INT(10) UNSIGNED。在我的c#代码中,当我试图将这些值读入一个uint类型时,它给我一个错误提示“无法将long转换成一个uint”。我还有什么遗漏的吗。我以为BIGINT应该是长的,而int(10) unsigned应该是uint?我正在使用实体框架来读取值...谢谢
代码
from employee in model.employees
select new EmployeeEntity {
EmpID = employee.EmpID,
FirstName=employee.FirstName
};在mysql中EmpID被声明为UNSIGNED INT 10
EmployeeEntity将EmpID声明为uint (我也尝试过uint32 )。不过,这条线
赋值"EmpID = employee.EmpID“给出了错误...
发布于 2011-01-03 17:13:03
这是提供商的问题。它在DBMS和应用程序之间转换类型时会出错。我建议您咨询他们的支持或更换提供商。
至于我--我正在为MySQL使用Devart dotConnect。它的映射表在这里提供- http://www.devart.com/dotconnect/mysql/docs/DataTypeMapping.html
发布于 2011-01-02 22:16:01
这听起来像是EF提供商的问题。可能只是简单地将该值作为long进行检索。但是既然你知道它是一个uint,你可以简单地将它从long转换为uint。但请尝试检查是否有更新版本的EF提供程序可以正确映射类型。
https://stackoverflow.com/questions/4578708
复制相似问题