0

我在我的项目中使用 NHibernate & Net Persistence API 和 C#。我有以下保存方法:

        public void Save(IGenericEntity entity)
        {
            _entityManager = GetEm();
            _entityManager.GetTransaction().Begin();
            _entityManager.Persist(entity);
            _entityManager.Flush();            
            _entityManager.GetTransaction().Commit();            
            _entityManager.Clear();
        }

现在说实体有一个字段 ID(这是从 db 自动生成的值)。现在我正在保存这个实体,我想要自动生成的 ID 或保存的实体作为回报,但是.Commit() 返回类型是无效的。任何人都可以请指导一下吗?

我在 Java 中使用过休眠,并且通过调用 .save() 它返回保存的实体(具有自动生成的 ID)。如何在上述情况下实现相同的目标?

4

1 回答 1

3

调用#flush 后,您的实体将包含 id。试试这个测试:

Save( entity );
assertNotNull( entity.getId() );
于 2012-12-14T21:49:35.540 回答