NHibernate(流畅)懒惰加载不起作用

时间:2012-10-18 20:01:21

标签: nhibernate fluent-nhibernate fluent-nhibernate-mapping

我正在尝试使用NHibernate为非常奇怪的数据库生成模型。表本身具有仅用于显示的主键,所有实际关系都在唯一列上。例如,具有产品ID主键和唯一产品名称列的产品表。另一个表demand,有一个产品名称列,用于定义关系。我知道这种情况并不理想,但这是我无法控制的。

无论如何,我能够使用Fluent NHibrenate将产品映射到需求,但我似乎无法让实体进行延迟加载。

public class Demand
{
  public virtual DemandId { get; set; }
  public virtual Product { get; set; }
}

public class DemandMap : ClassMap<Demand>
{
  public DemandMap()
  {
    this.Table("Demand");
    this.LazyLoad();
    this.Id(x => x.DemandId);
    this.References(x => x.Product).PropertyRef(x => x.ProductName).LazyLoad();
  }
}

有没有人知道为什么延迟加载不起作用?我知道这不是因为我可以看到产品随着SQL分析器中的需求一起被提取。

1 个答案:

答案 0 :(得分:1)

我的想法(也许你可以尝试使用“HasMany”有例子,但你可以读一下这个):

头等舱

public class Demand
{
  public virtual int DemandId { get; set; }
  public virtual int Product { get; set; }
  public virtual IEnumerable<NewClass> Name {get; set;} 
}

  this.HasMany(x=> x.Product).Column("Product_id").not.nullable;

第二课

public class NewClass
{
  public virtual Demand Product_id {get; set;}
}

this.References(x => x.Product).Column("product_id).not.nullable