public void Can_add_and_get_function_mapping()
        {
            var storeFunction  = EdmFunction.Create("fs", "ns", DataSpace.SSpace, new EdmFunctionPayload(), null);
            var functionImport = EdmFunction.Create("fs", "ns", DataSpace.SSpace, new EdmFunctionPayload(), null);

            var mappingContext = new SimpleMappingContext(new EdmModel(DataSpace.SSpace), true);

            Assert.Empty(mappingContext.MappedStoreFunctions());

            mappingContext.AddMapping(storeFunction, functionImport);
            Assert.Same(functionImport, mappingContext[storeFunction]);
            Assert.Same(storeFunction, mappingContext.MappedStoreFunctions().Single());
        }
Exemplo n.º 2
0
        private static EntityContainerMapping BuildEntityContainerMapping(SimpleMappingContext mappingContext)
        {
            var storeEntityContainer   = mappingContext.StoreModel.Containers.Single();
            var entityContainerMapping =
                new EntityContainerMapping(
                    mappingContext[storeEntityContainer],
                    storeEntityContainer,
                    null,
                    false,
                    false);

            foreach (var entitySetMapping in BuildEntitySetMappings(entityContainerMapping, mappingContext))
            {
                entityContainerMapping.AddSetMapping(entitySetMapping);
            }

            foreach (var associationSetMapping in BuildAssociationSetMappings(entityContainerMapping, mappingContext))
            {
                entityContainerMapping.AddSetMapping(associationSetMapping);
            }

            foreach (var mappedStoredFunction in mappingContext.MappedStoreFunctions())
            {
                entityContainerMapping.AddFunctionImportMapping(
                    BuildComposableFunctionMapping(mappedStoredFunction, mappingContext));
            }

            return(entityContainerMapping);
        }
Exemplo n.º 3
0
        private static EdmModel BuildEntityModel(SimpleMappingContext mappingContext)
        {
            var conceptualModelContainer = mappingContext[mappingContext.StoreModel.Containers.Single()];
            var entityModel = EdmModel.CreateConceptualModel(conceptualModelContainer, mappingContext.StoreModel.SchemaVersion);

            foreach (var entityType in mappingContext.ConceptualEntityTypes())
            {
                entityModel.AddItem(entityType);
            }

            foreach (var associationSet in mappingContext.ConceptualAssociationSets())
            {
                entityModel.AddItem(associationSet.ElementType);
            }

            foreach (var mappedStoredFunction in mappingContext.MappedStoreFunctions())
            {
                var functionImport = mappingContext[mappedStoredFunction];
                entityModel.AddItem(
                    (ComplexType)
                    ((CollectionType)functionImport.ReturnParameter.TypeUsage.EdmType).TypeUsage.EdmType);
            }

            return(entityModel);
        }
        private static EntityContainerMapping BuildEntityContainerMapping(SimpleMappingContext mappingContext)
        {
            var storeEntityContainer = mappingContext.StoreModel.Containers.Single();
            var entityContainerMapping =
                new EntityContainerMapping(
                    mappingContext[storeEntityContainer],
                    storeEntityContainer,
                    null,
                    false,
                    false);

            foreach (var entitySetMapping in BuildEntitySetMappings(entityContainerMapping, mappingContext))
            {
                entityContainerMapping.AddSetMapping(entitySetMapping);
            }

            foreach (var associationSetMapping in BuildAssociationSetMappings(entityContainerMapping, mappingContext))
            {
                entityContainerMapping.AddSetMapping(associationSetMapping);
            }

            foreach (var mappedStoredFunction in mappingContext.MappedStoreFunctions())
            {
                entityContainerMapping.AddFunctionImportMapping(
                    BuildComposableFunctionMapping(mappedStoredFunction, mappingContext));
            }

            return entityContainerMapping;
        }
        private static EdmModel BuildEntityModel(SimpleMappingContext mappingContext)
        {
            var conceptualModelContainer = mappingContext[mappingContext.StoreModel.Containers.Single()];
            var entityModel = EdmModel.CreateConceptualModel(conceptualModelContainer, mappingContext.StoreModel.SchemaVersion);

            foreach (var entityType in mappingContext.ConceptualEntityTypes())
            {
                entityModel.AddItem(entityType);
            }

            foreach (var associationSet in mappingContext.ConceptualAssociationSets())
            {
                entityModel.AddItem(associationSet.ElementType);
            }

            foreach (var mappedStoredFunction in mappingContext.MappedStoreFunctions())
            {
                var functionImport = mappingContext[mappedStoredFunction];
                entityModel.AddItem(
                    (ComplexType)
                    ((CollectionType)functionImport.ReturnParameter.TypeUsage.EdmType).TypeUsage.EdmType);
            }

            return entityModel;
        }
        public void Can_add_and_get_function_mapping()
        {
            var storeFunction = EdmFunction.Create("fs", "ns", DataSpace.SSpace, new EdmFunctionPayload(), null);
            var functionImport = EdmFunction.Create("fs", "ns", DataSpace.SSpace, new EdmFunctionPayload(), null);

            var mappingContext = new SimpleMappingContext(new EdmModel(DataSpace.SSpace), true);
            Assert.Empty(mappingContext.MappedStoreFunctions());

            mappingContext.AddMapping(storeFunction, functionImport);
            Assert.Same(functionImport, mappingContext[storeFunction]);
            Assert.Same(storeFunction, mappingContext.MappedStoreFunctions().Single());
        }
            public void GenerateFunctions_does_not_generate_functions_for_non_v3_schema_versions()
            {
                var storeReturnType = CreateRowType(CreateProperty("foo", PrimitiveTypeKind.Int32)).GetCollectionType();
                var returnParameter =
                    FunctionParameter.Create("ReturnType", storeReturnType, ParameterMode.ReturnValue);

                var storeFunction =
                    EdmFunction.Create(
                        "foo*",
                        "bar",
                        DataSpace.SSpace,
                        new EdmFunctionPayload { ReturnParameters = new[] { returnParameter } },
                        null);

                var mappingContext = new SimpleMappingContext(new EdmModel(DataSpace.SSpace), true);
                Assert.Empty(
                    CreateOneToOneMappingBuilder()
                        .GenerateFunctions(
                            mappingContext,
                            CreateStoreModel(EntityFrameworkVersion.Version1, storeFunction),
                            new UniqueIdentifierService(),
                            new UniqueIdentifierService()));
                Assert.Empty(mappingContext.MappedStoreFunctions());
                Assert.Empty(mappingContext.Errors);

                Assert.Empty(
                    CreateOneToOneMappingBuilder()
                        .GenerateFunctions(
                            mappingContext,
                            CreateStoreModel(EntityFrameworkVersion.Version2, storeFunction),
                            new UniqueIdentifierService(),
                            new UniqueIdentifierService()));
                Assert.Empty(mappingContext.MappedStoreFunctions());
                Assert.Empty(mappingContext.Errors);
            }
            public void GenerateFunctions_does_not_add_ivalid_functions_to_mapping_context()
            {
                var returnParameter =
                    FunctionParameter.Create(
                        "ReturnType",
                        PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32),
                        ParameterMode.ReturnValue);

                var storeFunction =
                    EdmFunction.Create(
                        "foo",
                        "bar",
                        DataSpace.SSpace,
                        new EdmFunctionPayload { ReturnParameters = new[] { returnParameter } },
                        null);

                var storeModel = new EdmModel(DataSpace.SSpace);
                storeModel.AddItem(storeFunction);

                var mappingContext = new SimpleMappingContext(new EdmModel(DataSpace.SSpace), true);
                Assert.Empty(
                    CreateOneToOneMappingBuilder()
                        .GenerateFunctions(
                            mappingContext,
                            storeModel,
                            new UniqueIdentifierService(),
                            new UniqueIdentifierService()));

                Assert.Equal(1, mappingContext.Errors.Count);
                Assert.Empty(mappingContext.MappedStoreFunctions());
            }