Ejemplo n.º 1
0
        public MappingSchema(string configuration, params MappingSchema[] schemas)
        {
            MappingSchemaInfo[] ss;

            if (schemas == null)
            {
                ss = Default._schemas;
                ValueToSqlConverter = new ValueToSqlConverter(Default.ValueToSqlConverter);
            }
            else if (schemas.Length == 0)
            {
                ss = Array <MappingSchemaInfo> .Empty;
                ValueToSqlConverter = new ValueToSqlConverter(Default.ValueToSqlConverter);
            }
            else if (schemas.Length == 1)
            {
                ss = schemas[0]._schemas;
                ValueToSqlConverter = new ValueToSqlConverter(schemas[0].ValueToSqlConverter);
            }
            else
            {
                ss = schemas.Where(s => s != null).SelectMany(s => s._schemas).Distinct().ToArray();
                ValueToSqlConverter = new ValueToSqlConverter(schemas.Select(s => s.ValueToSqlConverter).ToArray());
            }

            _schemas    = new MappingSchemaInfo[ss.Length + 1];
            _schemas[0] = new MappingSchemaInfo(configuration);

            Array.Copy(ss, 0, _schemas, 1, ss.Length);
        }
Ejemplo n.º 2
0
        public MappingSchema(string configuration, params MappingSchema[] schemas)
        {
            var schemaInfo = new MappingSchemaInfo(configuration);

            if (schemas == null || schemas.Length == 0)
            {
                Schemas = new[] { schemaInfo, Default.Schemas[0] };

                ValueToSqlConverter = new ValueToSqlConverter(Default.ValueToSqlConverter);
            }
            else if (schemas.Length == 1)
            {
                Schemas    = new MappingSchemaInfo[1 + schemas[0].Schemas.Length];
                Schemas[0] = schemaInfo;
                Array.Copy(schemas[0].Schemas, 0, Schemas, 1, schemas[0].Schemas.Length);

                var baseConverters = new ValueToSqlConverter[1 + schemas[0].ValueToSqlConverter.BaseConverters.Length];
                baseConverters[0] = schemas[0].ValueToSqlConverter;
                Array.Copy(schemas[0].ValueToSqlConverter.BaseConverters, 0, baseConverters, 1, schemas[0].ValueToSqlConverter.BaseConverters.Length);

                ValueToSqlConverter = new ValueToSqlConverter(baseConverters);
            }
            else
            {
                var schemaList     = new Dictionary <MappingSchemaInfo, int>(schemas.Length);
                var baseConverters = new Dictionary <ValueToSqlConverter, int>(10);

                var i = 0;
                var j = 0;

                schemaList[schemaInfo] = i++;

                foreach (var schema in schemas)
                {
                    foreach (var sc in schema.Schemas)
                    {
                        schemaList[sc] = i++;
                    }

                    baseConverters[schema.ValueToSqlConverter] = j++;

                    foreach (var bc in schema.ValueToSqlConverter.BaseConverters)
                    {
                        baseConverters[bc] = j++;
                    }
                }

                Schemas             = schemaList.OrderBy(_ => _.Value).Select(_ => _.Key).ToArray();
                ValueToSqlConverter = new ValueToSqlConverter(baseConverters.OrderBy(_ => _.Value).Select(_ => _.Key).ToArray());
            }

            //if (schemas != null && schemas.Length > 0)
            //	_entityDescriptors = schemas[0]._entityDescriptors;
        }
Ejemplo n.º 3
0
        internal MappingSchema(MappingSchemaInfo mappingSchemaInfo)
        {
            Schemas = new[] { mappingSchemaInfo };

            ValueToSqlConverter = new ValueToSqlConverter();
        }
Ejemplo n.º 4
0
        public MappingSchema(string configuration, params MappingSchema[] schemas)
        {
            var schemaInfo = new MappingSchemaInfo(configuration);

            if (schemas == null || schemas.Length == 0)
            {
                Schemas = new[] { schemaInfo, Default.Schemas[0] };

                ValueToSqlConverter = new ValueToSqlConverter(Default.ValueToSqlConverter);
            }
            else if (schemas.Length == 1)
            {
                Schemas    = new MappingSchemaInfo[1 + schemas[0].Schemas.Length];
                Schemas[0] = schemaInfo;
                Array.Copy(schemas[0].Schemas, 0, Schemas, 1, schemas[0].Schemas.Length);

                var baseConverters = new ValueToSqlConverter[1 + schemas[0].ValueToSqlConverter.BaseConverters.Length];
                baseConverters[0] = schemas[0].ValueToSqlConverter;
                Array.Copy(schemas[0].ValueToSqlConverter.BaseConverters, 0, baseConverters, 1, schemas[0].ValueToSqlConverter.BaseConverters.Length);

                ValueToSqlConverter = new ValueToSqlConverter(baseConverters);
            }
            else
            {
                var schemaList = new List <MappingSchemaInfo>(10)
                {
                    schemaInfo
                };
                var baseConverters = new List <ValueToSqlConverter>(10);

                foreach (var schema in schemas)
                {
                    foreach (var sc in schema.Schemas)
                    {
                        if (schemaList.Contains(sc))
                        {
                            schemaList.Remove(sc);
                        }
                        schemaList.Add(sc);
                    }

                    if (baseConverters.Contains(schema.ValueToSqlConverter))
                    {
                        baseConverters.Remove(schema.ValueToSqlConverter);
                    }
                    baseConverters.Add(schema.ValueToSqlConverter);

                    foreach (var bc in schema.ValueToSqlConverter.BaseConverters)
                    {
                        if (baseConverters.Contains(bc))
                        {
                            baseConverters.Remove(bc);
                        }
                        baseConverters.Add(bc);
                    }
                }

                Schemas             = schemaList.ToArray();
                ValueToSqlConverter = new ValueToSqlConverter(baseConverters.ToArray());
            }
        }
Ejemplo n.º 5
0
 internal LockedMappingSchema(MappingSchemaInfo mappingSchemaInfo) : base(mappingSchemaInfo)
 {
 }
Ejemplo n.º 6
0
 MappingSchema(MappingSchemaInfo mappingSchemaInfo)
 {
     _schemas = new[] { mappingSchemaInfo };
 }