将断开连接的 nHibernate 实体附加到会话并从数据库中读取

本文关键字:会话 数据库 读取 连接 断开 nHibernate 实体 | 更新日期: 2023-09-27 18:36:56

我是nHibernate的新手。我有一个接收断开连接的 nHibernate 实体列表的方法。在每个实体中,我都设置了主键(主键始终是一个名为 Id 的字段,它是一个 int)。

此时我试图实现的是连接到数据库并用该主键的值填充每个实体。我正在使用流畅的映射。

我不确定,但是是否可以将实体附加到会话/连接,以及某些通常如何根据id获取数据?

编辑:更具体的信息。

我有几个从基类(例如EntityBase)继承的nhibernate实体(例如User,Account)。此基类包含一个公共主键。

我正在传递这些实体的列表,并填充了主键。

public void RetrieveEntities(List<EntityBase> entities)

此时,我想循环浏览这些实体并从数据源获取完整实体。是否有可能或正在以错误的方式接近这一点?

如果需要澄清问题,请发表评论。干杯。

将断开连接的 nHibernate 实体附加到会话并从数据库中读取

使用 .合并,这将返回传入实体的附加版本。

像这样:

List<EntityBase> attachedEntities = new List<EntityBase>();
foreach(EntityBase entity in entities) 
{
    attachedEntities.Add(session.Merge(entity));
}