2011-11-13 10 views
0

レコードが存在する場合はlinqの既存レコードを更新する必要があります。新しいレコードを追加します。 saveChanges()は両方に対して機能しますか?もしあれば、更新と挿入を区別する方法。 ありがとうございます。一般的にはLinqは既存のレコードを更新します

+0

なぜ2つを区別したいのですか? – Christian

答えて

0

LINQのはは、修正のためのない照会のためである(それはすべての後に統合言語クエリの略) - 理想的には、任意の副作用を作成する必要はありません。更新と挿入は異なります。更新のためには、通常、既存のレコードをうまく照会する必要があります。更新 - 挿入するために、追加するだけです。そしてyes SaveChanges()は、基礎となるデータストアへの変更と追加をコミットするという点で、両方とも機能します。

あなたの質問は非常に広範であり、特定のコードはなく、より詳細な回答が得難いと苦労しています。

+0

OPはLINQ to Entities(またはLINQ to SQL)です。類似の名前にもかかわらず、クエリフレームワークはORMです。 – sq33G

+0

Linq to Entitiesは、Linqの一部である 'Queryable'で定義されているのと同じ拡張メソッドを使用しているので、引数は保持されています - 正確に何のためのdownvoteですか? EFがORMであるという議論はありませんが、EntityへのLinqの問い合わせはちょうど** - クエリ**のためです。 – BrokenGlass

+0

LINQ to Entitiesを使用してデータを更新しないでくださいという苦情は根拠がありません。 OPは、更新または挿入するLINQ文を求めていませんでした。 LINQ to Entitiesのレコードを更新して挿入する正しい方法を探していましたORM – sq33G

1

SaveChanges()は、最後の呼び出し以降にデータベースに対して加えたすべての変更を実行します。これには含まれています:

  • コレクションから項目を削除するコレクション
  • に新しいアイテムを追加する
  • 変更するプロパティだから、

、あなたはどちらかのコレクションにレコードを追加したり、取得する必要がありますそのプロパティを変更します。この点を行う一般的な方法はありません。変更を実行したら、SaveChanges()に電話して変更を保存します。

関連する問題