1
我已閱讀文章。 http://fabiomaulo.blogspot.com/2010/03/conform-mapping-components.html
試圖重現它在我的項目上,並得到了奇怪的行爲。
我有兩個的entites:
Plan
{
public virtual int Id { get; set; }
public virtual Payer Payer { get; set; }
}
Payer
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
映射它:
orm.Cascade<Payer, Plan >(CascadeOn.Persist | CascadeOn.Merge);
orm.Cascade<Plan, Payer>(CascadeOn.None);
取:
mapper.Customize<CarePlan>(cm => cm.ManyToOne(o => o.Payer, x =>
x.Fetch(FetchKind.Join)));
簡單的GET:
var plan = session.Query<Plan>().Where(c=>c.Id ==
1).SingleOrDefault();
Console.WriteLine(plan.Payer.Name);
而且我得到這個查詢:
select careplan0_.Id
careplan0_.PayerId
from CarePlans careplan0_
where careplan0_.Id = 1 /* @p0 */
and other query
SELECT payer0_.Id ,
payer0_.Name as Name
FROM Payers payer0_
WHERE payer0_.Id = 2
爲什麼我用了2個查詢?我怎樣才能獲得一個連接查詢?
http://stackoverflow.com/questions/8232420/nhibernate-join-fetchkind – mxmissile 2012-02-13 18:57:56
它'的anwser。我如何將這個問題設置爲重複? – 2012-02-13 20:50:21