Oracle+Entity Framework主键冲突

你好,看了你那个问题之后,不知道解决之后会有什么并发的问题?我找到一个方法:SaveChanges(System.Data.Objects.SaveOptions.Det... 你好,看了你那个问题之后,不知道解决之后会有什么并发的问题?
我找到一个方法:SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave),这个属性可以吧藏得objectstateentry相当于忽略掉,这样可以让它按正常流程跑下去,我感觉还是oracle不兼容的问题
展开
 我来答
心安同0C
2014-08-30 · TA获得超过221个赞
知道答主
回答量:171
采纳率:50%
帮助的人:53.1万
展开全部
我遇到过了, 这个问题非常苦逼啊.
我对比了一下 SQL Server 与 Oracle

如果是 SQL Server 的 identity 自增列
插入数据 SaveChanges 以后, 那个自增列的字段, 会自动更新的。

但是如果是 Oracle 的 触发器 + Sequence 的自增
插入数据 SaveChanges 以后, 那个自增列的字段,还是 0

也就是当插入1行数据的时候。SaveChanges 了。
SQL Server 里面, 那个 类的 id 会更新
Oralce 里面, 那个 类的 id 还是0

导致你再插入1行数据的时候。
SQL Server 啥问题没有
而 Oracle 就会抱 主键冲突 (其实这里都还没有插入数据库, 是 Entity Framework 检测到 主键冲突了, 于是不让你插入了)

我当时只好找个表来存储序列号,处理起来,也是很麻烦。
追问
只有这一种方法么?为什么会出现这种情况?oracle不是兼容么,这个好麻烦,回答你问题那个做法可行么?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式