EF を使用して挿入/更新すると、関連のないすべてのプロパティが自動的に無視されます。既存のオブジェクトからプロパティを取得してデータベースに適用する実装が必要な場合は、比較的新しいupsertを使用できます。
オブジェクトのグラフをアップサートする独自の方法が必要な場合...
データベース優先またはモデル優先 (EDMX がある場合) を使用している場合は、T4 テンプレートを使用して、これを行うコードを生成できます。
この手法でナビゲーション プロパティをサポートする場合は、ループを防ぐために何らかの仮定が必要です。たとえば、1 対多の更新ではなく、その逆ではなく、多対多のプロパティではないか、または EDMX のオプションの説明を使用してどのナビゲーション プロパティにアクセスするかのヒント。
ただし、リフレクションを使用する方が簡単な解決策ですが、リフレクションを使用する場合でも、どの方法を使用するかを決定する必要があります (たとえば、属性を使用する (上記の仮定/トリックを使用して T4 を追加できます))。
または、この手法(私が書いたもの) を EF で動作するように変換して、コードを使用してグラフ内のどこにアクセスするかを明示的に指定することもできます (dbset.SaveNavigation(graph, listOfPropertyPaths)作成時に実行したいことを想定した複雑なコードを記述する代わりに、使用しますdbset.Save(graph)(過去に成功しましたが、まだアップロードしていません)。
最近見つけたこの関連記事も参照してください(まだ試していません)。
ところで、null プロパティはデータベースを更新する際に重要な意味を持ちます。多くの場合、それらを無視したくないでしょう。