2012-01-03 7 views
0

私はオブジェクトモデルを持っています。私はEF 4.2を使用してSQL Compactデータベースに永続しています。クラスの1つに、オブジェクトが変更されたかどうかを判断するためのフラグがあります。オブジェクトがデフォルト値から変更されていない場合は、データベースに保存しません。 DbModelBuilderがこのプロパティに基づいてオブジェクトを投げるように設定する方法はありますか(それはブールですか)?私が検討している他のオプションは、DbContext.SaveChangesを無効にして、オブジェクトが変更されていない場合はDbSetからオブジェクトを削除するだけです。提案?Entity Frameworkコードファーストを使用してオブジェクトが永続化されないようにするにはどうすればよいですか?

+0

それはあなたがここに求めているものは明らかではありません変更されていない場合はEFは何もしませんもちろんのこと

if myObj.WasModified context.SaveChanges() else do nothing 

:のような単純なものでした。変更されていないオブジェクトの保存を禁止しようとしていますか?私の理解は、EFは未修正のオブジェクトを保存しないということです。 http://msdn.microsoft.com/en-us/library/bb896269.aspx –

+0

実際に私はオブジェクトを作成し、保存される前に変更されていないオブジェクトを投げ捨てています。変更の追跡が機能するかどうかはわかりません。リンクをありがとう、面白いもの。 – Nate

答えて

2

添付オブジェクトが変更されていない場合は、データベースに保存されません。 DbContextには独自の変更追跡メカニズムがあり、カスタムプロパティは使用されません。

+0

良い点ですが、私のプログラムの構造によって、最終的に保存する必要があるかどうかを知る前にオブジェクトが前面に作成されます。その時点で、特にフラグをチェックして投げるのではなく、EFがデータベースに追加すると思います。私はまだそれを試してみました。 – Nate

+0

オブジェクトを保存しない場合は、最初にコンテキストに追加/追加しないでください。悪いプログラム設計や悪いEFの使用に起因する問題(またはEFがプログラム設計上の要件を満たすために発生する問題)を解決しようとしているようです。 –

+0

もう一度、良い点。今のところ私はデザインにこだわっていて、ちょうどその周りに取り組んでいます。ありがとう。 – Nate

0

これをビジネスロジックに追加してみませんか?私が意味することは、EFがこれに対処すべき理由は何ですか?オブジェクトはとにかく

関連する問題