views:

222

answers:

3

Im using latest SVN 2.2 build compiled with VS 2008. When I build my VB classes using Sonic.exe any columns of type Date (Not Datetime) are generated as "System.String". Has anybody else found this problem and have a solution or is this a problem with Subsonic?

A: 

Submit an issue here: http://code.google.com/p/subsonicproject/issues/list

John Sheehan
Are you confirming this to be a problem? I will gladly submit an issue, but I'd rather not add it to the issue stack needlessly. It seems to me that this is such a "base" issue that others must be experiencing it, yet I dont see any other reports. – Zapatta 46 secs ago
Zapatta
A: 

Was this ever fixed? I see that the last activity on this issue is over a year ago, but I figure I'll ask.

A: 

It's still a pending issue, but it's an easy fix. If you have the SubSonic source code, make a few edits.

-- src\SubSonic\DataProviders\SqlDataProvider.cs.
Around line #1010 above "case datetime" add:

            case "date":
                return DbType.Date;

-- src\SubSonic\ActiveRecord\AbsractList.cs Around line #85 above "else if (dbType == DbType.DateTime)" add:

        else if (dbType == DbType.Date)
        {
            DateTime dX = Convert.ToDateTime(xVal);
            DateTime dY = Convert.ToDateTime(yVal);
            result = dX.CompareTo(dY);
        }

-- src\SubSonic\CodeLanguage\CSharpCodeLanguage.cs Around line #222 above "case DbType.DateTime" add:

            case DbType.Date:

I'm 99% these were the main changes needed, without these changes the last release will not properly support the SQL Server 2008 "DATE" data type.

Zachary