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%
帮助的人:56.4万
展开全部
我遇到过了, 这个问题非常苦逼啊.
我对比了一下 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不是兼容么,这个好麻烦,回答你问题那个做法可行么?
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式