我是 SubSonic 的新手(各种风格),但我想我不妨从 3.0 开始,因为我想使用 Linq,而且我的印象是 3.0 离发布不远了。
我尝试了 alpha 下载 .zip,但这似乎很旧,并且没有单数化表类名称,所以我现在从最新的中继 SVN 版本(rev62)运行。
我已经从 SubSonic.Templates\Simple 对我的数据库运行了“简单”模板,一切似乎都很好,但是模板创建的数据库上下文类如下所示:
public partial class DB : IQuerySurface
{
static DB _db;
public DB() {
_db = new DB();
}
public static DB CreateDB()
{
if (_db == null)
{
_db = new DB();
_db.Init();
}
return _db;
}
... etc
不出所料,当我调用 DB.CreateDB 时,ctor 会无休止地递归,并使所有内容因堆栈溢出而崩溃。
我根本不了解 ctor - 它看起来不应该在那里,但是“简单”和“高级”模板都创建了类似的东西,而且我想有一个巨大的测试套件正在验证这一点不知何故。
很明显,我在这里搞错了——我错过了什么明显的点?
更新:简单模板和高级模板不相似,高级模板没有这个问题。谢谢您的帮助。
另一个更新:看起来这在 SVN r66 的简单模板中已修复