【发布时间】:2016-08-19 15:07:00
【问题描述】:
一个非常初级的问题:
我有两个类,Review 和 ReviewSentences:
public class Review
{
public virtual int recordId { get; set; }
public virtual string reviewerId { get; set; }
public virtual string reviewerName { get; set; }
public virtual string country { get; set; }
public virtual string zipCode { get; set; }
public virtual string reviewProduct { get; set; }
public virtual string reviewText { get; set; }
public virtual string reviewTextLanguage { get; set; }
public virtual double sentimentScore { get; set; }
public virtual bool isScoreRefined { get; set; }
}
pulic class ReviewSentences
{
public virtual int recordId { get; set; }
public virtual int reviewId { get; set; }
public virtual int sentenceId { get; set; }
public virtual string sentence { get; set; }
public virtual double sentimentScore { get; set; }
}
ReviewSentences.reviewId 属性是引用 Review.recordId 的外键。一篇评论可以有很多句子(Review:ReviewSentences is 1:Many)
我已经尝试了很长时间,但无法使用 session.CreateCriteria 复制以下关于 NHibernate 的查询:
select * from Reviews r
left join
ReviewSentences rs
on
r.RecordId = rs.ReviewId
where rs.ReviewId is null
该查询为我提供了 Review 表中在 ReviewSentences 表中没有任何记录的所有评论。
【问题讨论】:
-
ORM 不需要引用,您应该在加载父实体时在实体之间使用 relations 来加载子实体。寻找 JOIN 意味着映射有问题
-
感谢@PanagiotisKanavos 的指导。现在问题解决了
标签: c# nhibernate