Example #1
0
        /// <summary>
        /// Adds a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be added.</param>
        public override void AddCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            AddConditionProperty(condition, _ => { });
        }
Example #2
0
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be removed.</param>
        public override void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            RemoveConditionProperty(condition);
        }
Example #3
0
        public void Can_add_and_remove_column_conditions()
        {
            var mappingFragment
                = new MappingFragment(
                      new EntitySet(),
                      new EntityTypeMapping(
                          new EntitySetMapping(
                              new EntitySet(),
                              new EntityContainerMapping(new EntityContainer("C", DataSpace.CSpace)))), false);

            Assert.Empty(mappingFragment.ColumnConditions);

            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })), 42, null);

            mappingFragment.AddConditionProperty(conditionPropertyMapping);

            Assert.Same(conditionPropertyMapping, mappingFragment.ColumnConditions.Single());

            mappingFragment.RemoveConditionProperty(conditionPropertyMapping);

            Assert.Empty(mappingFragment.ColumnConditions);
        }
Example #4
0
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be removed.</param>
        public override void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            m_conditionProperties.Remove(condition.Property ?? condition.Column);
        }
Example #5
0
        internal void RemoveConditionProperty(ConditionPropertyMapping condition)
        {
            DebugCheck.NotNull(condition);

            var conditionMember = condition.Property ?? condition.Column;

            m_conditionProperties.Remove(conditionMember);
        }
        public void Can_get_and_set_IsNull()
        {
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), null, false);

            Assert.Null(conditionPropertyMapping.Value);
            Assert.False((bool)conditionPropertyMapping.IsNull);
        }
 public void Can_get_and_set_Value()
 {
     var conditionPropertyMapping
         = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), 42, null);
     
     Assert.Equal(42, conditionPropertyMapping.Value);
     Assert.Null(conditionPropertyMapping.IsNull);
 }
Example #8
0
 public static string GetIdentity(ConditionPropertyMapping mapping)
 {
     if (mapping.Property == null)
     {
         return("ConditionProperty(ColumnIdentity=" + mapping.Column.Identity + ")");
     }
     return("ConditionProperty(Identity=" + mapping.Property.Identity + ")");
 }
Example #9
0
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to remove.</param>
        public void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            if (SingleFragment != null)
            {
                SingleFragment.RemoveCondition(condition);
            }
        }
 /// <summary>Removes a property mapping condition.</summary>
 /// <param name="condition">The property mapping condition to remove.</param>
 public void RemoveCondition(ConditionPropertyMapping condition)
 {
     Check.NotNull <ConditionPropertyMapping>(condition, nameof(condition));
     this.ThrowIfReadOnly();
     if (this.SingleFragment == null)
     {
         return;
     }
     this.SingleFragment.RemoveCondition(condition);
 }
        public void Can_get_and_set_IsNull()
        {
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })), null, false);

            Assert.Null(conditionPropertyMapping.Value);
            Assert.False((bool)conditionPropertyMapping.IsNull);
        }
        public void Can_get_and_set_Value()
        {
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })), 42, null);

            Assert.Equal(42, conditionPropertyMapping.Value);
            Assert.Null(conditionPropertyMapping.IsNull);
        }
        protected override void Visit(ConditionPropertyMapping conditionPropertyMapping)
        {
            int instanceIndex;

            if (!this.AddObjectToSeenListAndHashBuilder((object)conditionPropertyMapping, out instanceIndex))
            {
                return;
            }
            this.AddObjectStartDumpToHashBuilder((object)conditionPropertyMapping, instanceIndex);
            this.AddObjectContentToHashBuilder((object)conditionPropertyMapping.IsNull);
            this.AddObjectContentToHashBuilder(conditionPropertyMapping.Value);
            base.Visit(conditionPropertyMapping);
            this.AddObjectEndDumpToHashBuilder();
        }
        private static DbExpression GeneratePredicate(ConditionPropertyMapping condition, DbExpression row)
        {
            Debug.Assert(condition.Property == null, "C-side conditions are not supported in function mappings.");
            var columnRef = GenerateColumnRef(row, condition.Column);

            if (condition.IsNull.HasValue)
            {
                return(condition.IsNull.Value ? columnRef.IsNull() : (DbExpression)columnRef.IsNull().Not());
            }
            else
            {
                return(columnRef.Equal(columnRef.ResultType.Constant(condition.Value)));
            }
        }
        public void Can_get_and_set_column_property()
        {
            var column1 = new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace }));
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, column1, 42, null);

            Assert.Same(column1, conditionPropertyMapping.Column);

            var column2 = new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace }));

            conditionPropertyMapping.Column = column2;

            Assert.Same(column2, conditionPropertyMapping.Column);
        }        
Example #16
0
        internal void AddConditionProperty(
            ConditionPropertyMapping conditionPropertyMap,
            Action <EdmMember> duplicateMemberConditionError)
        {
            EdmProperty key = conditionPropertyMap.Property != null ? conditionPropertyMap.Property : conditionPropertyMap.Column;

            if (!this.m_conditionProperties.ContainsKey(key))
            {
                this.m_conditionProperties.Add(key, conditionPropertyMap);
            }
            else
            {
                duplicateMemberConditionError((EdmMember)key);
            }
        }
Example #17
0
        private static DbExpression GeneratePredicate(
            ConditionPropertyMapping condition,
            DbExpression row)
        {
            DbExpression columnRef = FunctionImportMappingComposable.GenerateColumnRef(row, condition.Column);

            if (!condition.IsNull.HasValue)
            {
                return((DbExpression)columnRef.Equal((DbExpression)columnRef.ResultType.Constant(condition.Value)));
            }
            if (!condition.IsNull.Value)
            {
                return((DbExpression)columnRef.IsNull().Not());
            }
            return((DbExpression)columnRef.IsNull());
        }
Example #18
0
        // <summary>
        // Add a condition property mapping as a child of this complex property mapping
        // Condition Property Mapping specifies a Condition either on the C side property or S side property.
        // </summary>
        // <param name="conditionPropertyMap"> The mapping that needs to be added </param>
        internal void AddConditionProperty(
            ConditionPropertyMapping conditionPropertyMap, Action <EdmMember> duplicateMemberConditionError)
        {
            //Same Member can not have more than one Condition with in the
            //same Mapping Fragment.
            var conditionMember = conditionPropertyMap.Property ?? conditionPropertyMap.Column;

            Debug.Assert(conditionMember != null);

            if (!m_conditionProperties.ContainsKey(conditionMember))
            {
                m_conditionProperties.Add(conditionMember, conditionPropertyMap);
            }
            else
            {
                duplicateMemberConditionError(conditionMember);
            }
        }
        public static void GetIdentity_of_StorageConditionPropertyMapping_returns_expected_value()
        {
            var typeUsage = TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
            var property1 = new EdmProperty("A", typeUsage);
            var property2 = new EdmProperty("B", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            }));

            PropertyMapping mapping = new ConditionPropertyMapping(property1, null, "V", null);

            Assert.Equal("ConditionProperty(Identity=A)",
                         BaseMetadataMappingVisitor.IdentityHelper.GetIdentity(mapping));

            mapping = new ConditionPropertyMapping(null, property2, "V", null);

            Assert.Equal("ConditionProperty(ColumnIdentity=B)",
                         BaseMetadataMappingVisitor.IdentityHelper.GetIdentity(mapping));
        }
        public void Cannot_add_condition_when_read_only()
        {
            var entitySet      = new EntitySet();
            var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));
            var associationSetMapping
                = new AssociationSetMapping(associationSet, entitySet);
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })), 42, null);

            associationSetMapping.SetReadOnly();

            Assert.Equal(
                Strings.OperationOnReadOnlyItem,
                Assert.Throws <InvalidOperationException>(
                    () => associationSetMapping.AddCondition(conditionPropertyMapping)).Message);
        }
        public void Can_get_and_set_column_property()
        {
            var column1 = new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            }));
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, column1, 42, null);

            Assert.Same(column1, conditionPropertyMapping.Column);

            var column2 = new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            }));

            conditionPropertyMapping.Column = column2;

            Assert.Same(column2, conditionPropertyMapping.Column);
        }
        protected override void Visit(ConditionPropertyMapping conditionPropertyMapping)
        {
            int index;

            if (!AddObjectToSeenListAndHashBuilder(conditionPropertyMapping, out index))
            {
                return;
            }

            AddObjectStartDumpToHashBuilder(conditionPropertyMapping, index);

            #region Inner data visit

            AddObjectContentToHashBuilder(conditionPropertyMapping.IsNull);
            AddObjectContentToHashBuilder(conditionPropertyMapping.Value);

            base.Visit(conditionPropertyMapping);

            #endregion

            AddObjectEndDumpToHashBuilder();
        }
        public void Can_add_get_remove_column_conditions()
        {
            var entitySet1     = new EntitySet();
            var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));

            var associationSetMapping
                = new AssociationSetMapping(associationSet, entitySet1);

            Assert.Empty(associationSetMapping.Conditions);

            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })), 42, null);

            associationSetMapping.AddCondition(conditionPropertyMapping);

            Assert.Same(conditionPropertyMapping, associationSetMapping.Conditions.Single());

            associationSetMapping.RemoveCondition(conditionPropertyMapping);

            Assert.Empty(associationSetMapping.Conditions);
        }
Example #24
0
 /// <summary>Removes a property mapping condition.</summary>
 /// <param name="condition">The property mapping condition to be removed.</param>
 public override void RemoveCondition(ConditionPropertyMapping condition)
 {
     Check.NotNull <ConditionPropertyMapping>(condition, nameof(condition));
     this.ThrowIfReadOnly();
     this.m_conditionProperties.Remove(condition.Property ?? condition.Column);
 }
Example #25
0
 /// <summary>Adds a property mapping condition.</summary>
 /// <param name="condition">The property mapping condition to be added.</param>
 public override void AddCondition(ConditionPropertyMapping condition)
 {
     Check.NotNull <ConditionPropertyMapping>(condition, nameof(condition));
     this.ThrowIfReadOnly();
     this.AddConditionProperty(condition, (Action <EdmMember>)(_ => {}));
 }
        internal void AddConditionProperty(ConditionPropertyMapping conditionPropertyMap)
        {
            DebugCheck.NotNull(conditionPropertyMap);

            AddConditionProperty(conditionPropertyMap, _ => { });
        }
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to remove.</param>
        public void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            if (SingleFragment != null)
            {
                SingleFragment.RemoveCondition(condition);
            }
        }
 /// <summary>
 /// Removes a property mapping condition.
 /// </summary>
 /// <param name="condition">The property mapping condition to be removed.</param>
 public abstract void RemoveCondition(ConditionPropertyMapping condition);
        public static void GetIdentity_of_StorageConditionPropertyMapping_returns_expected_value()
        {
            var typeUsage = TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
            var property1 = new EdmProperty("A", typeUsage);
            var property2 = new EdmProperty("B", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace }));

            PropertyMapping mapping = new ConditionPropertyMapping(property1, null, "V", null);

            Assert.Equal("ConditionProperty(Identity=A)",
                BaseMetadataMappingVisitor.IdentityHelper.GetIdentity(mapping));

            mapping = new ConditionPropertyMapping(null, property2, "V", null);

            Assert.Equal("ConditionProperty(ColumnIdentity=B)",
                BaseMetadataMappingVisitor.IdentityHelper.GetIdentity(mapping));
        }
Example #30
0
 internal void AddConditionProperty(ConditionPropertyMapping conditionPropertyMap)
 {
     this.AddConditionProperty(conditionPropertyMap, (Action <EdmMember>)(_ => {}));
 }
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be removed.</param>
        public override void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            RemoveConditionProperty(condition);
        }
        public void Can_add_get_remove_column_conditions()
        {
            var entitySet1 = new EntitySet();
            var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));

            var associationSetMapping
                = new AssociationSetMapping(associationSet, entitySet1);

            Assert.Empty(associationSetMapping.Conditions);

            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), 42, null);

            associationSetMapping.AddCondition(conditionPropertyMapping);

            Assert.Same(conditionPropertyMapping, associationSetMapping.Conditions.Single());

            associationSetMapping.RemoveCondition(conditionPropertyMapping);

            Assert.Empty(associationSetMapping.Conditions);
        }
Example #33
0
 /// <summary>
 /// Adds a property mapping condition.
 /// </summary>
 /// <param name="condition">The property mapping condition to be added.</param>
 public abstract void AddCondition(ConditionPropertyMapping condition);
 /// <summary>
 /// Adds a property mapping condition.
 /// </summary>
 /// <param name="condition">The property mapping condition to be added.</param>
 public abstract void AddCondition(ConditionPropertyMapping condition);
Example #35
0
 protected virtual void Visit(ConditionPropertyMapping conditionPropertyMapping)
 {
     Visit(conditionPropertyMapping.Column);
     Visit(conditionPropertyMapping.Property);
 }
        /// <summary>
        /// Removes a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be removed.</param>
        public override void RemoveCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            m_conditionProperties.Remove(condition.Property ?? condition.Column);
        }
        protected override void Visit(ConditionPropertyMapping conditionPropertyMapping)
        {
            int index;
            if (!AddObjectToSeenListAndHashBuilder(conditionPropertyMapping, out index))
            {
                return;
            }

            AddObjectStartDumpToHashBuilder(conditionPropertyMapping, index);

            #region Inner data visit

            AddObjectContentToHashBuilder(conditionPropertyMapping.IsNull);
            AddObjectContentToHashBuilder(conditionPropertyMapping.Value);

            base.Visit(conditionPropertyMapping);

            #endregion

            AddObjectEndDumpToHashBuilder();
        }
        public void Can_add_and_remove_column_conditions()
        {
            var mappingFragment
                = new MappingFragment(
                    new EntitySet(),
                    new EntityTypeMapping(
                        new EntitySetMapping(
                            new EntitySet(),
                            new EntityContainerMapping(new EntityContainer("C", DataSpace.CSpace)))), false);

            Assert.Empty(mappingFragment.ColumnConditions);

            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), 42, null);

            mappingFragment.AddConditionProperty(conditionPropertyMapping);

            Assert.Same(conditionPropertyMapping, mappingFragment.ColumnConditions.Single());

            mappingFragment.RemoveConditionProperty(conditionPropertyMapping);

            Assert.Empty(mappingFragment.ColumnConditions);
        }
Example #39
0
 /// <summary>
 /// Removes a property mapping condition.
 /// </summary>
 /// <param name="condition">The property mapping condition to be removed.</param>
 public abstract void RemoveCondition(ConditionPropertyMapping condition);
        /// <summary>
        /// Adds a property mapping condition.
        /// </summary>
        /// <param name="condition">The property mapping condition to be added.</param>
        public override void AddCondition(ConditionPropertyMapping condition)
        {
            Check.NotNull(condition, "condition");
            ThrowIfReadOnly();

            AddConditionProperty(condition, _ => { });
        }
        private void WriteConditionElement(ConditionPropertyMapping condition)
        {
            DebugCheck.NotNull(condition);

            _xmlWriter.WriteStartElement(MslConstructs.ConditionElement);
            if (condition.IsNull.HasValue)
            {
                WriteIsNullConditionAttribute(condition.IsNull.Value);
            }
            else
            {
                WriteConditionValue(condition.Value);
            }
            _xmlWriter.WriteAttributeString(MslConstructs.ConditionColumnNameAttribute, condition.Column.Name);
            _xmlWriter.WriteEndElement();
        }
 // <summary>
 // Add a condition property mapping as a child of this complex property mapping
 // Condition Property Mapping specifies a Condition either on the C side property or S side property.
 // </summary>
 // <param name="conditionPropertyMap"> The Condition Property mapping that needs to be added </param>
 internal void AddConditionProperty(
     ConditionPropertyMapping conditionPropertyMap, Action<EdmMember> duplicateMemberConditionError)
 {
     //Same Member can not have more than one Condition with in the 
     //same Complex Type.
     var conditionMember = (conditionPropertyMap.Property != null)
                               ? conditionPropertyMap.Property
                               : conditionPropertyMap.Column;
     Debug.Assert(conditionMember != null);
     if (!m_conditionProperties.ContainsKey(conditionMember))
     {
         m_conditionProperties.Add(conditionMember, conditionPropertyMap);
     }
     else
     {
         duplicateMemberConditionError(conditionMember);
     }
 }
        private static DbExpression GeneratePredicate(ConditionPropertyMapping condition, DbExpression row)
        {
            Debug.Assert(condition.Property == null, "C-side conditions are not supported in function mappings.");
            var columnRef = GenerateColumnRef(row, condition.Column);

            if (condition.IsNull.HasValue)
            {
                return condition.IsNull.Value ? columnRef.IsNull() : (DbExpression)columnRef.IsNull().Not();
            }
            else
            {
                return columnRef.Equal(columnRef.ResultType.Constant(condition.Value));
            }
        }
        public void Cannot_remove_condition_when_read_only()
        {
            var entitySet = new EntitySet();
            var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));
            var associationSetMapping
                = new AssociationSetMapping(associationSet, entitySet);
            var conditionPropertyMapping
                = new ConditionPropertyMapping(null, new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), 42, null);

            associationSetMapping.AddCondition(conditionPropertyMapping);
            associationSetMapping.SetReadOnly();

            Assert.Equal(
                Strings.OperationOnReadOnlyItem,
                Assert.Throws<InvalidOperationException>(
                    () => associationSetMapping.RemoveCondition(conditionPropertyMapping)).Message);
        }
        internal void RemoveConditionProperty(ConditionPropertyMapping condition)
        {
            DebugCheck.NotNull(condition);

            var conditionMember = condition.Property ?? condition.Column;

            m_conditionProperties.Remove(conditionMember);
        }
Example #46
0
        internal void AddConditionProperty(ConditionPropertyMapping conditionPropertyMap)
        {
            DebugCheck.NotNull(conditionPropertyMap);

            AddConditionProperty(conditionPropertyMap, _ => { });
        }
Example #47
0
 internal void RemoveConditionProperty(ConditionPropertyMapping condition)
 {
     this.m_conditionProperties.Remove(condition.Property ?? condition.Column);
 }