我正在使用 FluentNHibernate 访问我的数据库。我想实现下一个 - 应该填写我的实体所需的属性。例如,在一种情况下,应填写所有属性,在第二种情况下,存储库应仅返回具有 ID 和 Name 属性的实体。这有意义吗?
当我可以为实体实现一些映射时,我看到了这一点——每个映射都根据情况而定。然后我得到一些 ISessionFactory'ies - 存储库使用所需的 ISessionFactory 来覆盖所需的情况。嗯..但我不确定这是正确的解决方案。
我正在使用 FluentNHibernate 访问我的数据库。我想实现下一个 - 应该填写我的实体所需的属性。例如,在一种情况下,应填写所有属性,在第二种情况下,存储库应仅返回具有 ID 和 Name 属性的实体。这有意义吗?
当我可以为实体实现一些映射时,我看到了这一点——每个映射都根据情况而定。然后我得到一些 ISessionFactory'ies - 存储库使用所需的 ISessionFactory 来覆盖所需的情况。嗯..但我不确定这是正确的解决方案。
只需为每个场景创建专门的 DTO 视图模型并直接选择它们
using NHibernate.Linq;
var user = session.Query<User>()
.Where(user => user.Name == someName)
.Select(user => new LoginUser(user.Id, user.Name))
.FirstOrDefault();
您要查找的内容称为“投影”,但投影对象应该是不同的对象,而不是实体本身。NHibernate 支持书外的预测。看看文档。