我有一个例外“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);
}
答案 0 :(得分:0)
基本上你需要删除相同的项目,你正在创建一个给出问题的新项目。
应该是这样的
Class1 item = (Class1)dg.SelectedItem;
if (item!= null)
{
MyDataSource.DataView.Remove(item );
}
答案 1 :(得分:0)
Item2不是数据源的一部分。
两个相同类型和属性的对象并不一定意味着它们是相同的,同样它们应该位于同一个内存位置。
您需要找到与数据中相同属性匹配的项目,然后将其删除。