我正在使用FluentNHibernate访问我的数据库。我想实现下一步 - 只需要填充我的实体所需的属性。例如,在一种情况下,应填充所有属性,在第二种情况下,存储库应仅返回具有ID和Name属性的实体。 它是否有意义?
我明白了我可以为实体实现一些映射 - 每个映射都根据大小写。 然后我得到一些ISessionFactory'ies - 存储库使用所需的ISessionFactory来覆盖所需的案例。嗯..但我不确定这是正确的解决方案。
答案 0 :(得分:2)
只为每个场景创建专门的DTO视图模型并直接选择它们
using NHibernate.Linq;
var user = session.Query<User>()
.Where(user => user.Name == someName)
.Select(user => new LoginUser(user.Id, user.Name))
.FirstOrDefault();
答案 1 :(得分:0)
你在寻找什么被称为'投影',但投影对象应该是不同的对象,而不是实体本身。 NHibernate支持书中的预测。 Have a look at docs。