我正在尝试使用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分析器中的需求一起被提取。
答案 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