2

NHibernate를 사용하여 아주 이상한 데이터베이스 모델을 생성하려고합니다. 테이블 자체에는 표시 전용 기본 키가 있으며 모든 실제 관계는 고유 한 열에 있습니다. 예를 들어 제품 ID 기본 키와 고유 제품 이름 열이있는 제품 테이블입니다. 또 하나의 테이블 인 demand는 제품 이름 컬럼을 가지며 그 관계를 정의합니다. 나는이 상황이 이상적이 아니라는 것을 알고 있지만 그것은 내 통제에서 벗어났다.NHibernate (Fluent) Lazy Loading Not Working

필자는 Fluent NHbrenate를 사용하여 제품을 수요에 맞게 매핑 할 수 있었지만 엔티티를 느슨하게로드 할 수 없었습니다.

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

그래서

일등

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; 

2 등석을, Get '제품에 가입하고 있습니까? 당신은 SQL을 보여줄 수 있습니까? – dotjoe

+1

체크 아웃이 링크, propertyref http://stackoverflow.com/questions/4888140/fluent-nhibernate-references-and-propertyref-doing-a-select-with-lazy-load – BlakeH

+0

실제로 가입 아니에요 dotjoe , 제품을 얻기 위해 전적으로 별도의 쿼리를 수행합니다. 실제로 더 나빠집니다. – user653649

답변

1

내 생각 (어쩌면 당신은 사용 "hasMany의"를 시도 할 수 있습니다 예입니다하지만 당신은 이것에 대해 뭔가를 읽을 수 있습니다) :

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

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