entity framework问题,用事务添加实体,在没有savechange之前,获取自增键值。每次都需要设定实体关系,太麻烦了,有没有办法,不设置HasOptional或HasMany之类的实体关系,就可以获得自增键值呢,前提是要在savechange前。

解决方案 »

  1.   

    如果你不用EF,你是如何在保存前获得自增ID的?
    你这么纠结着这个无意义的ID,不如用GUID列。另外实体关系和自增根本是不相干的,你觉得麻烦可以用数据库来生成实体类,关系会一并生成。
      

  2.   


    可是我是用事务处理的,就是为了防止数据修改时某一个表发生问题可以进行数据回滚。在EF中配置了表关系,就可以在ADD后没有savechange前就能获取到自增值,但需要配置关系觉得好麻烦。
    用GUID太长,不用自增键自己生成又怕并发时数据出错。
      

  3.   


    可是我是用事务处理的,就是为了防止数据修改时某一个表发生问题可以进行数据回滚。在EF中配置了表关系,就可以在ADD后没有savechange前就能获取到自增值,但需要配置关系觉得好麻烦。
    用GUID太长,不用自增键自己生成又怕并发时数据出错。说得越多,错得越多,你姓猜么。
    EF默认乐观并发,可以使用悲观并发,跟自增列有什么关系。有空多看看资料,少猜。
      

  4.   


    可是我是用事务处理的,就是为了防止数据修改时某一个表发生问题可以进行数据回滚。在EF中配置了表关系,就可以在ADD后没有savechange前就能获取到自增值,但需要配置关系觉得好麻烦。
    用GUID太长,不用自增键自己生成又怕并发时数据出错。说得越多,错得越多,你姓猜么。
    EF默认乐观并发,可以使用悲观并发,跟自增列有什么关系。有空多看看资料,少猜。那我舍弃自增键吧,有什么好的方法生成自增键吗。GUID太长了,不美观
      

  5.   

    你的观点都是错的,没看到一句话是说对的。HasOptional或HasMany配置和自增主键没有半毛钱关系。
    事务和自增主键没有半毛钱关系。
      

  6.   

    guid和自增id结合下,当然自增id只是为了美观,处理数据还是要依据guid类型的主键