コード例 #1
0
        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);
            }));
        }
コード例 #2
0
        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);
            });
        }