【发布时间】:2010-03-10 20:54:26
【问题描述】:
我正在使用 subsonic 3 尝试将 SQL2008 项目转换为 MySQL。
当项目尝试执行此 LINQ 查询时:
public IQueryable<Marca> SelecionaMarcas()
{
try
{
return (from mc in _db.Marcas
where mc.Ativo == true
orderby mc.NomeMarca
select mc);
}
catch (Exception ex)
{
throw ex;
}
}
返回此错误:
Object of type 'System.UInt64' cannot be converted to type 'System.Boolean'
在 SubSonic.Extensions Database.cs 第 193 行:
if (val.GetType().IsAssignableFrom(valueType)){
currentProp.SetValue(item, val, null);
} else {
currentProp.SetValue(item, rdr.GetValue(i).ChangeTyp
那是我的数据库表:
CREATE TABLE `marca` (
`ID_Marca` int(4) NOT NULL AUTO_INCREMENT,
`NomeMarca` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
`Ativo` bit(1) NOT NULL,
`LogoMarca` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`ID_Marca`)
) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
在调试模式下我发现错误是 Ativo 字段。
任何机构对此有任何想法?
非常感谢!
【问题讨论】:
标签: c# asp.net-mvc subsonic subsonic3