2
我有2个实体产品和图像。并非所有图像都是产品图像,图像是文件的子类,下面是我的实体。我需要找到所有与产品无关的图像。我是新来的实体检索,并尝试了许多方法。任何想法或链接将不胜感激。NHibernate左外部加入子类
public class File
{
#region Feilds
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Enumerations.File.FileType Type { get; set; }
public virtual string Extension { get; set; }
public virtual string Path { get; set; }
public virtual DateTime DateCreated { get; set; }
public virtual DateTime DateModified { get; set; }
#endregion
}
public class Image : File
{
#region Fields
public virtual string ImageName { get; set; }
public virtual string Description { get; set; }
public virtual bool Active { get; set; }
public virtual DateTime DateTaken { get; set; }
#endregion
}
public class Product
{
#region Properties
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Description { get; set; }
public virtual decimal Price { get; set; }
public virtual decimal Weight { get; set; }
public virtual bool IsDigital { get; set; }
public virtual DateTime DateCreated { get; set; }
public virtual IList<Category> ProductCategories { get; set; }
public virtual IList<ProductAttribute> ProductAttributes { get; set; }
public virtual IList<Image> ProductImages { get; set; }
#endregion
}
这工作就像一个魅力只好有点重构它: 的IList图像= session.CreateCriteria(typeof运算(APP .File.Image), “IMG”) 。新增(Expression.Not(Subqueries.Exists(DetachedCriteria.For ( “PI”) .SetProjection(Projections.Constant(1)) 。 Add(Expression.EqProperty(“img.Id”,“pi.Image”)))))。List (); –
J2D2
2009-09-10 12:06:32
什么是Fluent NHibernate Criteria的优秀资源/文档? – J2D2 2009-09-10 12:07:31
哦,是的,我在最后忘了列表。对Fluent不太确定,我只有一个月进入正常的休眠状态。我认为Fluent是关于克服hbm.xml映射文件的。 – dotjoe 2009-09-10 13:37:20