我有兩個表(tbArea,tbPost)與以下類有關。Nhibernate:阻止它加入到不需要的表
class Area
{
int ID
string Name
...
}
class Post
{
int ID
string Title
Area Area
...
}
這兩個類與Fluent Nhibernate映射。以下是帖子映射。
public class PostMapping : ClassMap<Post>
{
public PostMapping()
{
Cache.NonStrictReadWrite();
this.Table("tbPost");
Id(x => x.ID)
.Column("PostID")
.GeneratedBy
.Identity();
References(x => x.Area)
.ForeignKey("AreaID")
.Column("AreaID");
...
}
}
任我上Post表「其中areaID表示= 1(任何areaID表示)」,NHibernate的將加入到區域表執行查詢。
(什麼NHibernate的生成查詢)
SELECT
post fields
, area fields (automatically added)
FROM tbPost p
LEFT JOIN tbArea a on
p.areaid = a.areaid
where
p.areaid = 1
我試圖區設置爲LazyLoad,到Fetch.Select,只讀,並在參考其他任何設置,仍然會隨時加入到區域。
我想優化後端數據庫查詢,因爲我不需要加載的區域對象只是過濾我想消除不必要的連接到區域每次我查詢帖子。
我需要更改或映射哪些配置以使區域仍然與我的對象中的帖子相關,但在我過濾AreaID時不會查詢它?
你可以發佈代碼發佈查詢嗎? – 2010-06-08 18:55:07
它可能不是重複的,但它可能會幫助你:http://stackoverflow.com/questions/476405/nhibernate-cant-successfully-set-lazy-loading – 2010-06-08 18:55:00