如何填充实体所需的属性(FluentNHibernate)

时间:2013-07-26 12:32:27

标签: .net nhibernate fluent-nhibernate fluent-nhibernate-mapping

我正在使用FluentNHibernate访问我的数据库。我想实现下一步 - 只需要填充我的实体所需的属性。例如,在一种情况下,应填充所有属性,在第二种情况下,存储库应仅返回具有ID和Name属性的实体。 它是否有意义?

我明白了我可以为实体实现一些映射 - 每个映射都根据大小写。 然后我得到一些ISessionFactory'ies - 存储库使用所需的ISessionFactory来覆盖所需的案例。嗯..但我不确定这是正确的解决方案。

2 个答案:

答案 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