异常“指定的实体未包含在此EntitySet中。”但实体包含在内

时间:2013-02-18 10:49:51

标签: c# silverlight silverlight-4.0

我有一个例外“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);

    }

2 个答案:

答案 0 :(得分:0)

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

应该是这样的

Class1 item = (Class1)dg.SelectedItem;

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

答案 1 :(得分:0)

Item2不是数据源的一部分。

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

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