他の人が次のシナリオにどのように対処しているかを知りたい。c#データベースの永続性のためのオブジェクトの等価性
これは宿題でも種類の割り当てでもありません。サンプルクラスは私の質問をよりよく説明するために作成されていますが、実際のライフシナリオを反映しており、フィードバックを希望しています。
データベースからすべてのデータを取得し、オブジェクトに配置します。オブジェクトは単一のレコードを表し、複数のレコードがデータベースに存在する場合、レコードオブジェクトのリスト<>にデータを置きます。
以下のクラスがあります。
public class Employee
{
public bool _Modified;
public string _FirstName;
public string _LastName;
public List<Emplyee_Address> _Address;
}
public class Employee_Address
{
public bool _Modified;
public string _Address;
public string _City;
public string _State;
}
明瞭にするために、ゲッターとセッターはクラスから省略されています。コードの警察が私にそれらを使用していないと非難している前に、この例のために除外されていることに注意してください。
このデータベースには、従業員用のテーブルと従業員アドレス用のテーブルがあります。
概念的には、データベーステーブルのデータを表すListオブジェクトを作成することです。このオブジェクトの深いクローンを作成し、フロントエンドのコントロールにバインドします。次に、データベースからのデータを表す2つのオブジェクト(OrigとFinal)があります。
ユーザは、レコードの作成、変更、削除によって「最終」オブジェクトに変更を加えます。そして、これらの変更をデータベースに保存します。
私たちは可能な限りエレガントで、必要なレコードを編集、作成、削除するだけです。
最終的に、2つのリストオブジェクトを比較してできるようにしたいと思います。
変更をデータベースに保存できるように変更されたプロパティを確認します。
これらのレコードをデータベースから削除できるように、2番目のリスト<にはどのプロパティ(レコード)が存在しなくなったかを確認してください。
新しいリスト<に存在する新しいプロパティを参照して、これらをデータベースに作成できるようにします。
私たちは、これを達成するためにどのようにボールを回転させたいのですか。また、トップレベルのプロパティだけでなく、変更を確認するためにEmployee_Addressリストにドリルダウンする必要があることに注意してください。
私は自分自身を明確にし、どんな提案も楽しみにしたいと思います。