2

我正在使用 FluentNHibernate 访问我的数据库。我想实现下一个 - 应该填写我的实体所需的属性。例如,在一种情况下,应填写所有属性,在第二种情况下,存储库应仅返回具有 ID 和 Name 属性的实体。这有意义吗?

当我可以为实体实现一些映射时,我看到了这一点——每个映射都根据情况而定。然后我得到一些 ISessionFactory'ies - 存储库使用所需的 ISessionFactory 来覆盖所需的情况。嗯..但我不确定这是正确的解决方案。

4

2 回答 2

2

只需为每个场景创建专门的 DTO 视图模型并直接选择它们

using NHibernate.Linq;

var user = session.Query<User>()
    .Where(user => user.Name == someName)
    .Select(user => new LoginUser(user.Id, user.Name))
    .FirstOrDefault();
于 2013-07-26T13:26:35.683 回答
0

您要查找的内容称为“投影”,但投影对象应该是不同的对象,而不是实体本身。NHibernate 支持书外的预测。看看文档

于 2013-07-26T13:11:20.100 回答