1

我使用的是用 VS 2008 编译的最新 SVN 2.2 版本。当我使用 Sonic.exe 构建我的 VB 类时,任何Date类型的列(不是Datetime)都会生成为“System.String”。有没有其他人发现这个问题并有解决方案,或者这是 Subsonic 的问题?

4

2 回答 2

2

这仍然是一个悬而未决的问题,但它很容易解决。如果您有 SubSonic 源代码,请进行一些编辑。

-- src\SubSonic\DataProviders\SqlDataProvider.cs。
在“案例日期时间”上方的第 1010 行周围添加:

            case "date":
                return DbType.Date;

-- src\SubSonic\ActiveRecord\AbsractList.cs 在“else if (dbType == DbType.DateTime)”上方的第 85 行周围添加:

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

-- src\SubSonic\CodeLanguage\CSharpCodeLanguage.cs 在“case DbType.DateTime”上方的第 222 行周围添加:

            case DbType.Date:

我 99% 认为这些是所需的主要更改,如果没有这些更改,最后一个版本将无法正确支持 SQL Server 2008“DATE”数据类型。

于 2010-10-07T00:38:08.217 回答
0

在此处提交问题:http ://code.google.com/p/subsonicproject/issues/list

于 2009-04-24T15:07:42.190 回答