【发布时间】:2012-10-10 09:29:58
【问题描述】:
我有以下实体
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;}
}
如您所见,Article 对它被分配到哪个 JobArticle 一无所知(它不相关)
所以我需要做的是以下。 获取 Job X 存在 JobArticles 的每个 ArticleCategory。
最简单的方法是将 JobArticles 列表添加到文章实体。但我不确定这是否是最好的方法。
所以我尝试了相反的方法(从 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)
我不太清楚怎么做,希望你能帮忙
【问题讨论】:
-
如果您需要更多信息,我很乐意提供。
标签: nhibernate queryover nhibernate-projections