Wal*_*eed 1 c# silverlight linq-to-sql windows-phone-7
我正在开发一个WP7芒果应用程序,它利用Linq2SQL进行数据访问.我有一个Note实体,它有一个类型为int的自动生成键.
我第一次向数据库添加新注释时,操作正常,注释保存,然后如果我从数据库中删除它,它也会从数据库中删除.第一个实体始终为Id = 0.
然后,如果我想在删除第一个音符后添加新音符,我会得到一个例外,表明该实体已经存在.我得出结论,即使我在数据上下文中调用SubmitChanges,也没有删除Id = 0的第一个实体.
此外,我在我的存储库和相同的存储库实例(出于性能原因的单例)上使用相同的数据上下文进行数据操作.为了确认这种行为,我试图连续调用,但它失败了!
this.DbContext.Notes.DeleteOnSubmit(value);
this.DbContext.SubmitChanges();
this.DbContext.Notes.InsertOnSubmit(value);
this.DbContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
它表示它无法添加已存在的实体.对此行为有何解释?提前致谢.
注意:当我使用数据上下文的两个不同实例时,此行为将消失.
那么你最后真的回答了你自己的问题.让我们一步一步:
每次你做一个
SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
你有更新你的参考,因为它的旧.
因此,如果您有一个方法可以执行多个事务,则需要刷新本地变量.
数据库的一个实例应该进行一次更改
| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |