Example #1
0
        public void GetComplexParameterBindings_should_return_all_complex_parameter_bindings_for_type()
        {
            var databaseMapping
                = new DbDatabaseMapping()
                  .Initialize(
                      new EdmModel(DataSpace.CSpace),
                      new EdmModel(DataSpace.SSpace));

            var entityType       = new EntityType("E", "N", DataSpace.CSpace);
            var entitySet        = databaseMapping.Model.AddEntitySet("ES", entityType);
            var entitySetMapping = databaseMapping.AddEntitySetMapping(entitySet);

            var complexType1 = new ComplexType();

            complexType1.Annotations.SetClrType(typeof(string));

            var complexType2 = new ComplexType();

            complexType2.Annotations.SetClrType(typeof(object));

            var storageModificationFunctionMapping
                = new StorageModificationFunctionMapping(
                      entitySet,
                      entityType,
                      new EdmFunction("F", "N", DataSpace.SSpace),
                      new[]
            {
                new StorageModificationFunctionParameterBinding(
                    new FunctionParameter(),
                    new StorageModificationFunctionMemberPath(
                        new EdmMember[]
                {
                    EdmProperty.Complex("C1", complexType1),
                    EdmProperty.Complex("C2", complexType2),
                    new EdmProperty("M")
                },
                        null),
                    true
                    )
            },
                      null,
                      null);

            entitySetMapping.AddModificationFunctionMapping(
                new StorageEntityTypeModificationFunctionMapping(
                    entityType,
                    storageModificationFunctionMapping,
                    storageModificationFunctionMapping,
                    storageModificationFunctionMapping));

            Assert.Equal(3, databaseMapping.GetComplexParameterBindings(typeof(string)).Count());
            Assert.Equal(3, databaseMapping.GetComplexParameterBindings(typeof(object)).Count());
        }
Example #2
0
        private static void ConfigureFunctionParameters(DbDatabaseMapping databaseMapping)
        {
            DebugCheck.NotNull(databaseMapping);

            foreach (var structuralTypeConfiguration
                     in databaseMapping.Model.ComplexTypes
                     .Select(ct => ct.GetConfiguration())
                     .Cast <StructuralTypeConfiguration>()
                     .Where(c => c != null))
            {
                structuralTypeConfiguration.ConfigureFunctionParameters(
                    databaseMapping.GetComplexParameterBindings(structuralTypeConfiguration.ClrType).ToList());
            }

            foreach (var entityType in databaseMapping.Model.EntityTypes.Where(e => e.GetConfiguration() != null))
            {
                var entityTypeConfiguration = (EntityTypeConfiguration)entityType.GetConfiguration();

                entityTypeConfiguration.ConfigureFunctionParameters(databaseMapping, entityType);
            }
        }
Example #3
0
 private static void ConfigureFunctionParameters(DbDatabaseMapping databaseMapping)
 {
     foreach (StructuralTypeConfiguration typeConfiguration in databaseMapping.Model.ComplexTypes.Select <ComplexType, object>((Func <ComplexType, object>)(ct => ct.GetConfiguration())).Cast <StructuralTypeConfiguration>().Where <StructuralTypeConfiguration>((Func <StructuralTypeConfiguration, bool>)(c => c != null)))
     {
         typeConfiguration.ConfigureFunctionParameters((IList <ModificationFunctionParameterBinding>)databaseMapping.GetComplexParameterBindings(typeConfiguration.ClrType).ToList <ModificationFunctionParameterBinding>());
     }
     foreach (EntityType entityType in databaseMapping.Model.EntityTypes.Where <EntityType>((Func <EntityType, bool>)(e => e.GetConfiguration() != null)))
     {
         ((EntityTypeConfiguration)entityType.GetConfiguration()).ConfigureFunctionParameters(databaseMapping, entityType);
     }
 }