Java Hibernate和.Net EntityFramework 如何在提交事务之前 就拿到需要新增实体的Id

在Hibernate中很容易做到这一点,因为hibernate在事务commit之前  还有一个save方法,这个save方法就可以持久化并且拿到Id。

但是EF并不可以呀,EF是将对象标记为新增状态,等到最后上下文统一SaveChange的时候,才能提交事务拿到Id。 

哎,初涉不深,我觉得应该是这个情况没错。不知道EF到底能不能像Hibernate那样,在事务commit之前就拿到。

所以我就想到使用两个EF上下文来做,但是两个上下文 有没有办法同时回滚,所以为了解决两个事务都能回滚的问题,

想到了一个办法,EF分布式事务应该可以。 

感觉还是有点问题,事务之间有隔离性呀。

需要进一步确认和整理,先做个笔记。

操作后,整理结果:

弄晕了,想了一下这样的做法是错的,也不需要知道什么id,可能hibernate和EF设计的思想本来就不同,在EF中能不能拿得到ID其实也是无所谓的,可以把对象关系交给EF来处理 主外键,完全不需要获取Id。如果真是有什么特殊需要的话,主键可以换GUID,这样拿程序来生成就好了

原文地址:https://www.cnblogs.com/tdws/p/4093770.html