Question

Je suis en mesure d'obtenir dossier actif en cours d'exécution tout de suite. Les instructions pour commencer étaient super et en peu de temps que j'avais construit un webservice qui me permettrait de créer et lire des widgets dans mon db existant. C'était génial. Quand il est venu à la mise à jour, les choses se sont effondrées. Je modifier l'objet sur le client et le renvoyer au service, mais lorsque le service a sauvé, il suffit de créer un nouveau. Je raisonnais que cela signifiait que je devrais la db re-requête et affecter les valeurs envoyées jusqu'à au service du client, mais mon patron a dit que ce serait aki et que le modèle référentiel serait mieux parce que pourrait utiliser pocos. Malheureusement, c'est l'étendue des conseils que j'ai obtenu. Voici donc mes questions.

  1. sont les modèles de seulement bon pour t4 enregistrement actif ou Construiront-ils votre référentiel simple pour vous aussi. Par exemple, est-il quelque chose qui volonté gen mes pocos trop ou sont-ils tous 'roll votre propre?

  2. Quelqu'un a vu un exemple de travail d'un subsonique 3 niveaux Solution? Je l'ai lu à leur sujet mais y at-il des échantillons flottantes autour?

Les échantillons de disques actifs / screencasts étaient vraiment faciles à suivre parce qu'ils ont commencé au même point que je commence avec. Les simples dépôt semblaient se concentrer davantage sur les migrations et d'autres fonctionnalités avancées et étant que ce genre de choses est nouveau pour moi, je ne sais pas assez pour relier les points.

Ugh. Il n'y a rien comme avoir un délai pour apprendre quelque chose et avoir en cours d'exécution d'ici la fin de la semaine. Tout conseil serait le bienvenu, même si elle est RTFM avec un lien vers le manuel que je aurait dû lire.

Merci à l'avance

Était-ce utile?

La solution

Si vous voulez utiliser un modèle référentiel, vous pouvez utiliser le LINQ modèles ou utiliser le référentiel simple qui ne nécessite pas de modèles t4.

Avec dépôt simple, vous créez les pocos vous-même. Subsonique peut créer ou mettre à jour le schéma de base de données pour vous si vous choisissez:

var repository=new SimpleRepository(SimpleRepositoryOptions.RunMigrations);

mais si vous me demandez, je choisirait SimpleRepositoryOptions.None et mettre à jour la base de données par moi-même.

En tout cas, votre problème initial avec les modèles ActiveRecord pourrait être fixé assez facile. Je suggère votre objet ActiveRecord est publié en feuilleton sur le côté client et désérialisée sur le serveur.

Le constructeur par défaut d'un objet ActiveRecord appelle la fonction Init qui ressemble à ceci:

    void Init(){
        TestMode=this._db.DataProvider.ConnectionString.Equals("test", StringComparison.InvariantCultureIgnoreCase);
        _dirtyColumns=new List<IColumn>();
        if(TestMode){
            <#=tbl.ClassName#>.SetTestRepo();
            _repo=_testRepo;
        }else{
            _repo = new SubSonicRepository<<#=tbl.ClassName#>>(_db);
        }
        tbl=_repo.GetTable();
        SetIsNew(true);
        OnCreated();       

    }

Comme vous pouvez le voir, le référentiel interne est créé et SetIsNew(true) est exécuté. La seule chose que vous avez à faire est d'appeler myitem.SetIsNew(false) après que l'objet se avec les valeurs désérialisés. Je suppose que cela suffit pour dire subsonique à faire une requête de mise à jour pendant la sauvegarde.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top