我使用的是用 VS 2008 编译的最新 SVN 2.2 版本。当我使用 Sonic.exe 构建我的 VB 类时,任何Date类型的列(不是Datetime)都会生成为“System.String”。有没有其他人发现这个问题并有解决方案,或者这是 Subsonic 的问题?
问问题
441 次
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
于 2009-04-24T15:07:42.190 回答