例外情况”;指定的实体不包含在此EntitySet中";但是实体被包含

本文关键字:实体 包含 EntitySet quot 情况 | 更新日期: 2023-09-27 17:59:58

我有一个异常"The specified entity is not contained in this EntitySet."。但当我查看我的dataSource时,就是在那里看到我的实体。

这是代码:

     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);
    }

例外情况”;指定的实体不包含在此EntitySet中";但是实体被包含

基本上,您需要删除同一个项目,您正在创建一个出现问题的新项目。

应该是像这个

Class1 item = (Class1)dg.SelectedItem;
     if (item!= null)
     {
         MyDataSource.DataView.Remove(item );
     }

Item2不是数据源的一部分。

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

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