Я, возможно, не так на это, я использовал только Дозвуковой 2.2 с SQL2008, но я бы рекомендовал смотреть на источник дозвуковых, а именно SQLLiteDataProvider.cs
и рассмотрение функции DbType
.
Кажется, что распознает тип Boolean
, но не Bool
, и по умолчанию, когда он не распознает ваш тип, необходимо обратиться к String
.
Заяц код в вопросе от этой функции
switch(sqliteType.ToLowerInvariant())
{
case "text":
case "char":
case "nchar":
case "varchar":
case "nvarchar":
return DbType.String;
case "boolean":
case "bit":
return DbType.Boolean;
case "bigint":
case "int":
case "integer":
return DbType.Int64;
case "real":
case "numeric":
case "double":
case "single":
case "float":
return DbType.Single;
case "smallint":
return DbType.Int16;
case "date":
case "time":
case "datetime":
case "smalldatetime":
case "timestamp":
return DbType.DateTime;
case "binary":
case "blob":
case "image":
return DbType.Binary;
case "guid":
return DbType.Guid;
default:
return DbType.String;
}
Я рекомендовал бы изменить его, видя, если он работает, а затем recommeding изменения в дозвуковых парнях.
Большое спасибо! Оно работает ! Я загрузил источник для SubSonic, исправил его и скомпилировал. Бог благословил с открытым исходным кодом. – RubyWedge