public virtual T GetSinglePropertyValue<T>( int dataObjectId, int propertyId, T defaultValue ) where T : Object, IEquatable<T>