0

我有一个例外“ The specified entity is not contained in this EntitySet.”。但是当我查看我的数据源时,会看到我的实体。

这是代码:

     Class1 item = (Class1)dg.SelectedItem;

     if (item!= null)
     {
         Class2 item2= new Class2();
         item2.Att1= item.Att1;
         item2.Att2= item.Att2;
         item2.Att3= item.Att3;
         MyDataSource.DataView.Remove(item2);

     }

我想删除我的 DataSource 的对象,该对象在我的数据网格中具有所选项目的属性。

当我在 DataSource 上观看时,我的 item2 出现了,为什么我不能从 DataSource 中删除它?相同的类别,相同的属性。我不明白。

我发现了这个,并且效果很好:

if (item!= null)
    {
    Class2 myPiece = MyDataSource.DataView.OfType<Class2>().Where(OrEs => OrEs.Att1 == item.Att1).FirstOrDefault() ;

    MyDataSource.dataView.Remove(myPiece);

    }
4

2 回答 2

0

基本上你需要删除同一个项目,你正在创建一个新项目,这是一个问题。

应该是这样的

Class1 item = (Class1)dg.SelectedItem;

     if (item!= null)
     {
         MyDataSource.DataView.Remove(item );
     }
于 2013-02-18T10:54:29.517 回答
0

Item2 不是您的数据源的一部分。

相同类型和属性的两个对象并不一定意味着它们相同,它们应该位于相同的内存位置。

您需要在数据源中找到与相同属性匹配的项目,然后将其删除。

于 2013-02-18T10:54:48.250 回答