[Updated June 23, 2008: A simplified and more systematic approach to this may be found within S#arp Architecture . While the complexities of the Equals/GetHashCode method are kept away in a base class, you simply need to add an [Identity] attribute over each property in a class which is part of the domain...