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生成的字段确实出现在我的对象中。我必须承认我不太明白为什么这很重要,但是无论如何它还是解决了这个问题。希望这可以帮助别人     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...