-2

右。私のデータベース テーブルには数千のレコードが含まれており、EF を使用して日付フィルターを適用することで、数十しか読み取っていません。ユーザーが UI でそれらのいくつかを変更し、UI から日付範囲を変更してさらにレコードを取り込むとします。日付フィルター コントロールは、DateFrom と DateTo という VM の 2 つのプロパティに直接バインドされています。これらのプロパティは、次のことを行います。

AllOrders = context.Orders.Where(Function(x) x.Date >= DateFrom AndAlso x.Date <= DateTo).ToList()

AllOrders は、UI の DataContext がバインドされるプロパティです。私の質問は、この再クエリはローカルの変更を破棄するのですか? 再クエリする前に SaveChanges() を呼び出す必要がありますか? ユーザーが明示的に [保存] ボタンを押したときにのみ保存した​​い場合はどうすればよいですか?

4

1 に答える 1

0

ObjectContext を使用している場合は、MergeOptionを使用して、エンティティの処理方法を EF に伝えることができます。DbContext を使用している場合は、.AsNoTracking()を使用できると思います。どのような場合でも、有効期間が長いコンテキストではなく、有効期間が短いコンテキストを使用することを検討する必要があります。

于 2013-03-03T20:33:08.947 に答える