public virtual Action <object, object> CreateBaseSetter( Type declaringType, PropertyInfo propertyInfo) { Action <object, object> nonProxySetter = DelegateFactory.CreateNavigationPropertySetter(declaringType, propertyInfo); string propertyName = propertyInfo.Name; return((Action <object, object>)((entity, value) => { Type type = entity.GetType(); if (EntityProxyFactory.IsProxyType(type) && EntityProxyFactory.TrySetBasePropertyValue(type, propertyName, entity, value)) { return; } nonProxySetter(entity, value); })); }
public virtual Action <object, object> CreateBaseSetter(Type declaringType, PropertyInfo propertyInfo) { DebugCheck.NotNull(propertyInfo); var nonProxySetter = DelegateFactory.CreateNavigationPropertySetter(declaringType, propertyInfo); var propertyName = propertyInfo.Name; return((entity, value) => { var type = entity.GetType(); if (IsProxyType(type)) { if (TrySetBasePropertyValue(type, propertyName, entity, value)) { return; } } nonProxySetter(entity, value); }); }