Example #1
0
 private void ConfigureResultBindings(
     ModificationFunctionMapping modificationStoredProcedureMapping)
 {
     foreach (KeyValuePair <PropertyInfo, string> resultBinding in this._resultBindings)
     {
         PropertyInfo propertyInfo = resultBinding.Key;
         string       str          = resultBinding.Value;
         ModificationFunctionResultBinding functionResultBinding = ((IEnumerable <ModificationFunctionResultBinding>)modificationStoredProcedureMapping.ResultBindings ?? Enumerable.Empty <ModificationFunctionResultBinding>()).SingleOrDefault <ModificationFunctionResultBinding>((Func <ModificationFunctionResultBinding, bool>)(rb => propertyInfo.IsSameAs(rb.Property.GetClrPropertyInfo())));
         if (functionResultBinding == null)
         {
             throw Error.ResultBindingNotFound((object)propertyInfo.Name, (object)modificationStoredProcedureMapping.Function.FunctionName);
         }
         functionResultBinding.ColumnName = str;
     }
 }
Example #2
0
        public void Can_configure_result_bindings()
        {
            var modificationFunctionConfiguration = new ModificationStoredProcedureConfiguration();

            var mockPropertyInfo = new MockPropertyInfo();

            modificationFunctionConfiguration
            .Result(new PropertyPath(mockPropertyInfo), "Foo");

            var entitySet = new EntitySet();

            entitySet.ChangeEntityContainerWithoutCollectionFixup(new EntityContainer("C", DataSpace.CSpace));

            var property = new EdmProperty("P1");

            property.SetClrPropertyInfo(mockPropertyInfo);

            var resultBinding = new ModificationFunctionResultBinding("Bar", property);

            modificationFunctionConfiguration.Configure(
                new ModificationFunctionMapping(
                    entitySet,
                    new EntityType("E", "N", DataSpace.CSpace),
                    new EdmFunction("F", "N", DataSpace.SSpace),
                    new[]
            {
                new ModificationFunctionParameterBinding(
                    new FunctionParameter(
                        "P",
                        TypeUsage.Create(
                            PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)),
                        ParameterMode.In),
                    new ModificationFunctionMemberPath(new[] { property }, null), false)
            },
                    null,
                    new[] { resultBinding }),
                ProviderRegistry.Sql2008_ProviderManifest);

            Assert.Equal("Foo", resultBinding.ColumnName);
        }