ここには、私がしたいことの非常に基本的な例があります。私が思いついたコードは非常に冗長であるようです。つまり、コレクションなどをループします。セット操作を使用して、ビューモデルのコレクションに一致するエンティティコレクション内のオブジェクトを削除するにはどうすればよいですか?
削除、挿入、更新されたViewModelのコレクションをポストバックするTelerik MVCグリッドを使用しています。ビューモデルは類似していますが、エンティティとまったく同じではありません。
たとえば:私は持っています:
注文します。 Linesは、OrderDetailレコードを含むエンティティコレクション(ナビゲーションプロパティ)です。私のコントローラの更新アクションでは、私はリストの名前DeletedLinesは、POSTデータからプルしている。私はまた、データベースを照会し、ラインコレクションを含むOrderエンティティを持っています。
ここでは、基本的には、ラインEntityCollectionのすべてのOrderDetailsを削除するように伝えたいと思います。
私はそれを行っている方法のようなものです:私は削除してDeleteObjectのにそれを渡すためにエンティティのコレクションを取得するには.Interset()を使用することができな方法があった期待していた
foreach (var line in DeletedLines) {
db.DeleteObject(Order.Lines.Where(l => l.Key == line.Key).SingleOrDefault())
}
。しかし、DeleteObjectは、コレクションではなく単一のエンティティのみを受け入れるようです。
おそらく上記は十分です。しかし、より簡単な方法があるはずです。
おかげで、 ボブ
FWIW、あなたはより多くを削除するための簡単な拡張メソッドを追加することができます一度に1つずつですが、foreachを実行するだけです:) –