Je to stále nevyřešený problém, ale je to snadná oprava. Pokud máte zdrojový kód SubSonic, proveďte několik úprav.
-- src\SubSonic\DataProviders\SqlDataProvider.cs.
Kolem řádku #1010 nad „case datetime“ přidejte:
case "date":
return DbType.Date;
-- src\SubSonic\ActiveRecord\AbsractList.csKolem řádku #85 nad "else if (dbType ==DbType.DateTime)" přidejte:
else if (dbType == DbType.Date)
{
DateTime dX = Convert.ToDateTime(xVal);
DateTime dY = Convert.ToDateTime(yVal);
result = dX.CompareTo(dY);
}
-- src\SubSonic\CodeLanguage\CSharpCodeLanguage.csKolem řádku #222 nad "case DbType.DateTime" přidejte:
case DbType.Date:
Jsem 99%, toto byly hlavní potřebné změny, bez těchto změn nebude poslední vydání správně podporovat datový typ SQL Server 2008 "DATE".