【问题标题】:How to create dupplicate Key after old key deleted on Devexpress XPO?在 Devexpress XPO 上删除旧密钥后如何创建重复密钥?
【发布时间】:2014-10-31 10:53:58
【问题描述】:

这是我的产品类:

  public class Product : XPLiteObject
    {
       public string productId {get;set;}
    }

我使用 Gridview 来控制数据。 当我用 productId = "id-5";

删除一行时
gridview1.deleteSelectedRows();

然后使用 productId = "id-5" 添加新行; (相同的 id 我被删除了)

我终于答应了;

unitOfWork1.CommitChanges();

收到异常:找到重复的密钥!

【问题讨论】:

    标签: c# winforms linq devexpress xpo


    【解决方案1】:

    看起来相应的记录没有从数据库中删除。可能的原因有以下三种:

    1. 如果 GridView 绑定到 XPCollection,请确保将 XPCollection.DeleteObjectOnRemove 属性设置为 true。否则,GridView.DeleteSelectedRows 方法只会从集合中删除对象;

    2. 如果GridView通过UnitOfWork绑定到XPCollection,在执行GridView.DeleteSelectedRows后还需要执行UnitOfWork.CommitChanges方法。否则,您的更改将不会提交到数据库;

    3. 如果 Product 类用DeferredDeletionAttribute 修饰,删除此对象将设置相应的布尔列值,但实际上不会从数据库中删除记录。如果是这种情况,有四种方法可以解决问题:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-11
    • 2012-02-06
    • 1970-01-01
    • 2020-04-15
    • 2013-02-19
    • 2014-10-17
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多