Est-il possible d'avoir une liste < string > en tant que propriété sur une classe d'enregistrement active

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

Question

Est-il possible d'avoir une relation HasMany d'un type de base tel que String sur une classe ActiveRecord, sans qu'il soit nécessaire de créer une autre entité telle que (TodoListItem) pour contenir la valeur.

[ActiveRecord]
public class TodoList
{

  [PrimaryKey]
  public int Id
  {
    get { return _id; }
    set { _id = value; }
  }

  [HasMany(typeof(string)]
  public IList<string> Items
  {
    get { return _items; }
    set { _items= value; }
  }
}

Quelqu'un peut-il aider?

Était-ce utile?

La solution

Oui, vous pouvez le faire. Vous pouvez mapper une relation un-à-plusieurs sur un type intégré ou simple (type de valeur ou chaîne) plutôt qu'avec un type persistant.

Vous devez spécifier les paramètres ColumnKey , Table et Element dans la déclaration d'attribut HasMany de faites-le brancher correctement. Vous devez avoir une colonne de clé de substitution pour que le AR puisse gérer les mises à jour et les cascades, puis Élément indique à AR quelle colonne de la table contient la valeur simple qu'il utilisera pour faire la liste.

[HasMany(typeof(string), Table="ToDoList_Items", 
         ColumnKey = "ListItemID", Element = "Item")]
public IList<string> Items { get; set; }

(ou quelque chose de similaire - je n'ai pas de compilateur à portée de main pour vérifier cela; mais d'après la documentation de l'API, il devrait fonctionner.)

À propos, http://api.castleproject.org est un peu indispensable pour tout travail avec la pile Castle.

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