正如问题所述,我知道使用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