Я новичок в SubSonic (из всех вкусов), но думал, что могу начать с версии 3.0, потому что я бы хотел использовать Linq, и я получаю впечатление, что это не так далеко от выпуска.Как создать дозвуковой класс контекста 3.0 DB?
Я пробовал альфа-загрузку .zip, но это кажется довольно старым и не выделяет имена классов таблиц, поэтому теперь я запускаю последнюю версию SVN версии (rev62).
Я запускать «простые» шаблоны, от SubSonic.Templates \ Simple против моей базе данных, и все, кажется, хорошо, но контекст класса DB, который шаблоны создания начинается как это:
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
Unsurprisingly, когда я вызываю DB.CreateDB, ctor бесконечно рекурсивно и сбрасывает все с переполнением стека.
Я вообще не понимаю, что такое ctor - он не выглядит так, как будто он должен быть там, но как «простые», так и «продвинутые» шаблоны создают нечто похожее, и есть обширный набор тестов, который я Представьте, это как-то это проверяет.
Очевидно, что у меня есть неправильный конец палки - какой ослепительно очевидный момент я пропустил?
Обновление: Простые и расширенные шаблоны не похожи, а расширенные не имеют этой проблемы. Спасибо за помощь.
Другой Update: Похоже, это фиксируется в простых шаблонов в SVN R66
Это похоже на опечатку. Должно быть public DB() {} –
Должно быть "private DB() {}". Я бы просто изменил шаблон и продолжил. –