正如問題所述,我知道使用NHinbernate我可以告訴一個具體的查詢Fetch(Func<T,bool>)
,甚至FetchMany()
。但是如果我想以相反的方式做呢?nHibernate,我可以告訴它去取<T>,但我可以告訴它保持<T>?
例如,讓我們說,我們有一個類..
class Employee {
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
public virtual double Salary { get; set; }
}
如果Employee
正在尋找自己的個人資料,我希望Address
和Salary
被渲染。但是如果一個不同的員工在看什麼呢?構建一個ASP.NET MVC視圖似乎更爲方便,但特別是不返回需要隱藏的數據。因此,像..
if(// myself //) {
return employee = session.Query<Employee>()
.Fetch(context => context.Address)
.Take(1)
.SingleOrDefault();
}
else
return employee = session.Query<Employee>()
.Deny(context => context.Address)
.Deny(context => context.Salary)
.Take(1)
.SingleOrDefault();
然後我的觀點可能的樣子..
@model Employee
<h2>@Model.Name</h2>
<h4>@Html.DisplayFor(model => model.Address)</h4>
<h4>@Model.Salary</h4>
我知道這是不是在宇宙中最好的例子,但這樣的事情可能嗎?到目前爲止,我還沒有找到任何明確告訴對象不返回的方法。
+1狗笑話 – Martin 2011-03-22 18:31:32