Je développe une application de questions/réponsesune collection d'entités couramment NHibernate
J'ai une table post dans la db le long des lignes de:
- ID
- Titre
- corps
- DateCreated
- AuthorID
- AuthorName (en cas l'utilisateur non enregistré)
- AutherEmail (comme ci-dessus)
- PostType (ENUM - 1 si la question, 2 si la réponse)
- Afficher (champ bit)
Ensuite, il y a "PostBase" - qui est une classe abstraite (dont les propriétés sont communes à la fois Question et Réponse - listées ci-dessous) J'ai alors une classe interne "Post", qui descend de PostBase, et a donc toutes les propriétés listées ci-dessus.
Il existe alors une classe Question et une classe Answer.
Les deux utilisent Post comme classe de base.
Voici les classes:
public abstract class PostBase
{
{
get { return postCreatorEmail; }
//todo: add email address validation here?
set { postCreatorEmail = value; }
} private IList<Attachment> attachments = new List<Attachment>();
public PostBase()
{
//init logic here
}
public virtual DateTime DateCreated { get; set; }
public virtual string ID { get; set; }
public virtual string Body { get; set; }
public virtual DateTime DateLastModified { get; set; }
public virtual string PostCreatorName { get; set; }
public virtual string PostCreatorEmail { get; set; }
public virtual int PostCreatorID { get; set; }
public virtual PostType PostType { get; set; }
public virtual PostSource PostSource { get; set; }
public virtual bool Show { get; set; }
public IEnumerable<Attachment> Attachments { get { return attachments; } }
}
Poster
internal class Post : PostBase
{
public virtual List<string> Tags { get; set; }
public virtual string Title { get; set; }
public virtual string ParentPostID { get; set; }
}
Question:
public class Question : PostBase
{
public Question()
{
tags = new List<string>();
}
public string Title { get; set; }
public List<string> Tags { get { return tags; } }
public int NumberOfReplies { get; set; }
}
Réponse:
public class Answer : PostBase
{
public string QuestionID { get; set; }
}
J'utilise automapper pour mapper/de réponse et post ou question et post
Ce que je suis en train de faire, est de créer la classe suivante:
public class QuestionWithAnswers
{
public Question Question { get; set; }
public IEnumerable<Answer> Answers { get; set; }
}
qui a essentiellement une « question » - rappelez-vous ceci est juste un poste dans le DB, avec un ParentPostID de 0, avec une liste de réponses (où ParentPostID est égal à Question.ID ... ou le long de ces lignes)
Ma question est - comment puis-je mapper ceci dans nHibernate fluent?