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 はデータソースの一部ではありません。

同じタイプと属性の 2 つのオブジェクトは、必ずしもそれらが同じであることを意味するわけではありません。

データソースで同じ属性に一致するアイテムを見つけて、それを削除する必要があります。

于 2013-02-18T10:54:48.250 に答える