У меня есть следующие объекты
public class ArticleCategory
{
public int Id {get; set;}
public string Name {get; set;}
public IList<Article> Articles {get; set;}
}
public class Article
{
public int Id {get; set;}
public string Name {get; set;}
public ArticleCategory Category {get; set;}
}
public class JobArticles
{
public int Id {get; set;}
public Job Job {get; set;}
public decimal Price {get; set;}
public Article Article {get; set;}
}
Как вы можете видеть, статья ничего не знает о том, какой JobArticle она была назначена (это не имеет значения).
Итак, что мне нужно сделать, это следующее. Получите каждую категорию статей, для которой существуют статьи о работе для задания X.
Самый простой способ — добавить список вакансий в объект статьи. Но я не уверен, что это лучший способ.
Поэтому я попробовал противоположный путь (перешел от JobArticle к ArticleCategory). Что-то такое
IQueryOver<JobArticle, JobArticle> q = DataSession.Current.QueryOver<JobArticle>();
Article ArticleAlias = null;
ArticleCategory ArticleCategoryAlias = null;
q.JoinAlias(x => x.Article, () => ArticleAlias);
q.JoinAlias(x => ArticleAlias.Category, () => ArticleCategoryAlias);
q.Where(x => x.Job.Id == jobId);
q.SelectList(list => list
.Select(x => ArticleCategoryAlias))
Что приводит к исключению NULL-Reference, потому что .Select(x => ArticleCategoryAlias)
Я не совсем уверен, как это сделать, надеюсь, вы можете помочь