Subsonic - quelqu'un peut-il fournir un exemple d'utilisation de Subsonic SimpleRepository pour conserver une liste/un tableau d'objets ?

StackOverflow https://stackoverflow.com/questions/1610362

Question

Je recherche des moyens possibles de persister dans les cours suivants.Subsonique Dépôt simple on dirait que ça pourrait marcher, et les gens ont dit que ça devrait le faire, quand j'ai demandé à un question plus générale.

Mais je n'ai pas réussi à trouver un seul exemple de la façon de procéder - ou du moins un exemple que je pourrais comprendre.

Quelqu'un peut-il me donner un exemple ou me dire comment utiliser Subsonic pour mapper les classes suivantes à une base de données ?

Noter que Je n'ai pas conçu la base de données - J'espère que Subsonic fera ça pour moi, connard paresseux que je suis...

Modifier: Juste pour développer le point précédent - j'espère que Subsonic convertira mon modèle objet en une base de données relationnelle, traitant de toutes les relations parent-enfant et un-à-plusieurs implicites.Actuellement, je ne pense pas que Subsonic puisse faire ça.Mais même un exemple de travail (pas un fragment de code) qui gère explicitement les clés étrangères, etc. dans le modèle objet serait utile.

Quelques informations générales et notes sur les cours que je souhaite conserver :

  • ils sont utilisés par le logiciel qui contrôle certains équipements de mesure
  • le Données la classe contient un tableau de Exécuter les données objets appelésExécuterFn, qui contient les données jusqu'à 10 exécutions de mesure individuelles
  • noter que Exécuter les données contient également un tableau de flotteurs - Brut
  • si nécessaire, nous pouvons remplacer les tableaux par un autre type de collection (List<>, etc.)
  • développement en C#, VS2008, pour SQL Server Express

Modifier: J'utilise Subsonic 3.0.0.3.

public class RunData

{
    public DateTime StartDateTime { get; set; }
    public TimeSpan ElapsedTime { get; set; }

    private float[] _rawY;
    public float[] RawY
    {
        get
        {
            return _rawY;
        }
        set
        {
            _rawY = value;
        }
     }
 }

public Data
{
    public string OperatorId { get; set; }
    public string SampleId { get; set; }

    // CAN SUBSONIC DEAL WITH THIS ARRAY OF OBJECTS???
    private RunData[] _runFn;
    public RunData[] RunFn
    {
        get
        {
            return _runFn;
        }
        set
        {
            _runFn = value;
        }
    }
}
Était-ce utile?

La solution 2

Pour répondre à ma propre question...

Malgré quelques autres publications que j'ai trouvées qui impliquent que Subsonic SimpleRepository peut générer automatiquement un schéma relationnel à partir d'un modèle objet, Il s'avère que ce n'est pas le cas.Voir la réponse de Rob Conery à cette question :

relations-et-chargement-paresseux-dans-subsonic-3-0

Il y travaille cependant et cela en vaut probablement la peine.

En attendant, j'ai regardé NHibernate courant, et cela fait ce que je veux dès la sortie de la boîte.Leur téléchargement de code source contient un projet de démonstration appelé Exemples.FirstProject qui démontre la fonctionnalité que je recherche.Leur documentation semble également beaucoup plus mature.

Cependant, NHibernate semble également globalement plus complexe, il sera donc intéressant de voir ce qui se développe avec Subsonic.

Modifier: Voici un lien utile qui montre comment gérer vous-même les clés étrangères dans SimpleRepository -

dépôt subsonic-3-simple

Je ne l'ai pas essayé moi-même, mais il semble que cela fonctionnerait réellement.

Autres conseils

Je ne suis pas sûr de répondre à tout ce que vous demandez ici, mais si j'implémentais cela en utilisant SimpleRepository, j'aurais les modèles suivants :

public class RawYValue
{
  public int Id { get; set; }
  public int RunDatumId { get; set; }
  public float YValue { get; set; }
}

public class RunDatum
{
   var repo = new SimpleRepository();

   public int Id { get; set; }
   public int DataId { get; set; }
   public DateTime StartDateTime { get; set; }
   public TimeSpan ElapsedTime { get; set; }

   public IQueryable<RawYValue> RawYValues 
   { 
     get { return repo.Find<RawYValue>(rawYValue => rawYValue.RunDatumId == Id); }
   }
 }

public Data
{       
  var repo = new SimpleRepository();

  public int Id { get; set; }
  public string OperatorId { get; set; }
  public string SampleId { get; set; }

  // CAN SUBSONIC DEAL WITH THIS ARRAY OF OBJECTS???
  public IQueryable<RunDatum> RunData 
  { 
     get { return repo.Find<RunDatum>(runDatum => runDatum.DataId == Id); }
  }
}

J'imagine que SubSonic aura du mal à mettre au pluriel certains noms, vous devrez donc peut-être les changer, mais j'espère que cela vous aidera à démarrer.

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