Я новичок в SubSonic (всех разновидностей), но подумал, что с таким же успехом могу начать с 3.0, потому что я хотел бы использовать Linq, и у меня сложилось впечатление, что 3.0 не так уж далека от выпуска.
Я попробовал загрузить альфа-версию .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