ビジネスオブジェクトの2番目の等式比較子を作成する必要があります。これは、特定の状況にのみ適用できる特殊な等式比較器です。Equal()をオーバーライドしたくないのは、永続レイヤーがEqual()を使用して、オブジェクトを内部的に比較して独自に使用するためです。クラスの例を挙げましょう。
public class Product : BusinessObjectBase
{
string Name {get;set;}
string Desc {get;set;}
double Price {get;set;}
}
データアクセス層で3つのプロパティを永続データプロパティとしてマークしているため、BusinessObjectBaseのEquals()はこれらのプロパティを比較します。ここで、特定の例で、製品Aが製品Bと等しいかどうかを確認したいのは名前だけです。このプロパティは後で変更される可能性があるため、チェックで実際のプロパティをハードコーディングしたくありません。
ここではIComparerを使用できますが、MSDNの説明に基づくと、IComparerはアイテムを同一視するのではなく、並べ替えるために使用する必要があります。これは、100%正解ではないようです。.NETにすでにあるものを使用し、別のインターフェイスを作成したくない。これを行うための最良の方法は何ですか?
ありがとう