Это все еще нерешенная проблема, но ее легко исправить. Если у вас есть исходный код SubSonic, сделайте несколько правок.
- src \ SubSonic \ DataProviders \ SqlDataProvider.cs.
Вокруг строки # 1010 над "case datetime" добавьте:
case "date":
return DbType.Date;
- src \ SubSonic \ ActiveRecord \ AbsractList.cs
Вокруг строки № 85 выше «else if (dbType == DbType.DateTime)» добавить:
else if (dbType == DbType.Date)
{
DateTime dX = Convert.ToDateTime(xVal);
DateTime dY = Convert.ToDateTime(yVal);
result = dX.CompareTo(dY);
}
- src \ SubSonic \ CodeLanguage \ CSharpCodeLanguage.cs
Вокруг строки # 222 над "case DbType.DateTime" добавьте:
case DbType.Date:
Я на 99% это были основные необходимые изменения, без этих изменений последняя версия не будет правильно поддерживать тип данных SQL Server 2008 «DATE».