gpt4 book ai didi

security - nHibernate,我可以告诉它 Fetch,但我可以告诉它 Stay 吗?

转载 作者:行者123 更新时间:2023-12-03 06:33:50 24 4
gpt4 key购买 nike

正如问题所述,我知道使用 NHinbernate 我可以将特定查询告诉 Fetch(Func<T,bool>) ,甚至 FetchMany() 。但如果我想反过来怎么办?

例如,假设我们有一个类..

class Employee {
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
public virtual double Salary { get; set; }
}

如果 Employee正在看自己的个人资料,我想AddressSalary被渲染。但如果有不同的员工在寻找怎么办?构建一个 ASP.NET MVC View 似乎更方便,但专门不返回需要隐藏的数据。所以就像..

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();

那么我的 View 可能看起来像..

@model Employee

<h2>@Model.Name</h2>
<h4>@Html.DisplayFor( model => model.Address )</h4>
<h4>@Model.Salary</h4>

我意识到这不是宇宙中最好的例子,但是这样的事情可能吗?到目前为止,我还没有找到任何明确告诉对象不要返回的方法。

最佳答案

一如既往,ASP.NET MVC 中所有问题的答案都是: View 模型。因此,您获取存储库中的所有内容并返回包含所有属性的域 Employee 模型,然后将此 Employee 模型映射到 EmployeeViewModel 。然后这个 View 模型将被传递给 View 。当 Controller 根据用户在模型和 View 模型之间映射时,它可能包含或不包含某些属性。

关于security - nHibernate,我可以告诉它 Fetch<T>,但我可以告诉它 Stay<T> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com