Я разрабатываю приложение на основе вопросов / ответов
У меня есть таблица Post в БД по строкам:
- ID
- Заголовок
- Кузов
- Дата создания
- AuthorID
- AuthorName (если пользователь не зарегистрирован)
- AutherEmail (как указано выше)
- PostType (enum - 1, если вопрос, 2, если ответ)
- Показать (битовое поле)
Затем существует "PostBase" - абстрактный класс (свойства, общие для вопросов и ответов - перечислены ниже).
Затем у меня есть внутренний класс «Post», который происходит от PostBase и, следовательно, имеет все свойства, перечисленные выше.
Затем есть класс Вопроса и класс Ответа.
Оба используют Post в качестве базового класса.
Вот классы:
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; } }
}
Сообщение
internal class Post : PostBase
{
public virtual List<string> Tags { get; set; }
public virtual string Title { get; set; }
public virtual string ParentPostID { get; set; }
}
Вопрос:
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; }
}
Ответ:
public class Answer : PostBase
{
public string QuestionID { get; set; }
}
Я использую automapper для сопоставления с ответом и публикацией или вопросом и сообщением
Я пытаюсь создать следующий класс:
public class QuestionWithAnswers
{
public Question Question { get; set; }
public IEnumerable<Answer> Answers { get; set; }
}
Который в основном имеет "Вопрос" - помните, что это просто сообщение в БД, с ParentPostID 0, со списком Ответов (где ParentPostID равен Question.ID ... или вдоль этих строк)
Мой вопрос - как мне отобразить это в беглом nHibernate?