如何解决Devart InsertAllOnSubmit不会更新数据库生成的字段
|| 我正在使用Devart的Linq to Oracle组件。我有一个表,其中的字段是通过数据库中的序列更新的。当插入一行时,这可以正常工作:Dim db As New DataContext
db.MyObjects.InsertOnSubmit(MyObject)
db.SubmitChanges()
此时,“ 1”将包含在数据库中生成的版本标识符。所以我期望这段代码能正常工作:
Dim db As New DataContext
db.MyObjects.InsertAllOnSubmit(MyObjectsList)
db.SubmitChanges()
但是,当我这样做时,即使将行添加到表中,MyObjectsList
中的所有对象中的Version
字段也都保持不变。
我在这里想念什么?提前致谢。
解决方法
对于插入该实体时要检索的数据库成员生成的成员值,应为下列条件之一:
该成员的“自动生成的值”属性设置为true;
该成员的'自动同步'属性设置为'OnInsert \'或
\'总是\'。
请检查是否满足以下任一条件。另外,请尝试将dotConnect for Oracle升级到6.30.160版本(如果使用的是以前的版本)。
如果问题仍然存在,您能否将可以复制的测试项目发送给我们?
,好吧,我发现了问题,这与devart无关。问题出在我将IEnumerable(Of MyObject)传递给该方法,这是另一个查询的结果。当我将该列表具体化为List(Of MyObject)并将其传递时,db生成的字段确实出现在我的对象中。我必须承认我不太明白为什么这很重要,但是无论如何它还是解决了这个问题。希望这可以帮助别人
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。