System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.ValidateInitializerMetadata C# (CSharp) Method

ValidateInitializerMetadata() private method

private ValidateInitializerMetadata ( InitializerMetadata metadata ) : void
metadata InitializerMetadata
return void
        internal void ValidateInitializerMetadata(InitializerMetadata metadata)
        {
            DebugCheck.NotNull(metadata);
            InitializerMetadata existingMetadata;
            if (_initializers != null
                && _initializers.TryGetValue(metadata.ClrType, out existingMetadata))
            {
                // Verify the initializers are compatible.
                if (!metadata.Equals(existingMetadata))
                {
                    throw new NotSupportedException(
                        Strings.ELinq_UnsupportedHeterogeneousInitializers(
                            DescribeClrType(metadata.ClrType)));
                }
            }
            else
            {
                // Register the metadata so that subsequent initializers for this type can be verified.
                if (_initializers == null)
                {
                    _initializers = new Dictionary<Type, InitializerMetadata>();
                }
                _initializers.Add(metadata.ClrType, metadata);
            }
        }