我正在使用Devart的Linq to Oracle组件。我有一个表,其中的字段通过数据库中的序列进行更新。这在插入一行时工作正常:
Dim db As New DataContext
db.MyObjects.InsertOnSubmit(MyObject)
db.SubmitChanges()
此时,MyObject.Version
将包含在数据库中生成的版本标识符。所以我期待这段代码能正常工作:
Dim db As New DataContext
db.MyObjects.InsertAllOnSubmit(MyObjectsList)
db.SubmitChanges()
但是当我执行此操作时,Version
字段在MyObjectsList
中的所有对象中保持不变,即使行 被添加到表中。
我在这里缺少什么?提前谢谢。
答案 0 :(得分:1)
对于插入此实体时要检索的实体成员的数据库生成值,应满足以下条件之一:
请检查是否满足其中任何一个条件。另外,请尝试更新到dotConnect for Oracle的6.30.160版本(如果您使用的是先前版本)。
如果问题仍然存在,请问send us一个可以复制的测试项目吗?
答案 1 :(得分:1)
好吧,我发现了问题,它与devart无关。问题结果是我将IEnumerable(Of MyObject)传递给方法,这是另一个查询的结果。当我将此列表具体化为List(Of MyObject)并传递该列表时,db生成的字段确实出现在我的对象中。我必须承认我不太明白为什么这很重要,但无论如何它解决了这个问题。希望这能帮助别人一段时间