private IProperty FindPropertyOverridenBy(Property property)
{
var baseType = EntityFor(property).DeclaringType.BaseType;
var candidates = NameResolutionService.Resolve(baseType, property.Name, EntityType.Property);
if (candidates != null)
{
if (EntityType.Property == candidates.EntityType)
{
var candidate = (IProperty)candidates;
if (CheckOverrideSignature(EntityFor(property), candidate))
return candidate;
}
else if (candidates.IsAmbiguous())
return ResolvePropertyOverride(EntityFor(property), ((Ambiguous)candidates).Entities);
}
return null;
}