Je suis nouveau à SubSonic (de toutes les saveurs), mais je pensais que je pourrais aussi bien commencer par 3.0, parce que j'aimerais utiliser Linq, et j'ai l'impression que la version 3.0 n'est pas si loin de la version.Comment créer la classe de contexte DB subsonique 3.0?
J'ai essayé le .zip de téléchargement alpha, mais cela semble assez vieux et n'a pas singularisé les noms de classe de table, donc je cours maintenant à partir de la dernière version de SVN de tronc (rev62).
J'ai couru les modèles « simples », à partir SubSonic.Templates \ simple contre ma base de données et tout semble ok, mais la classe de contexte DB que les modèles créent commence comme ceci:
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
Sans surprise, quand j'appelle DB.CreateDB, le ctor récursive indéfiniment et plante tout avec un débordement de pile.
Je ne comprends pas vraiment le ctor du tout - il ne semble pas qu'il devrait être là, mais les modèles 'simple' et 'avancé' créent quelque chose de similaire, et il y a une suite de tests énorme que je Imaginez est en train de vérifier cela en quelque sorte.
De toute évidence, j'ai la mauvaise extrémité du bâton ici - quel point aveuglément évident ai-je manqué?
Mise à jour: Les modèles simples et avancés ne sont pas similaires, et les modèles avancés n'ont pas ce problème. Merci pour l'aide.
Une autre mise à jour: Il ressemble à ceci est fixé dans les modèles simples dans SVN R66
Cela ressemble à une faute de frappe. Doit être public DB() {} –
Devrait être "DB privé() {}". Je voudrais juste changer le modèle et passer à autre chose. –