Пример #1
0
 public PopulateToken(Metadata.IEntityMetadata entity, EntityMember member, int ordinal)
 {
     this.Ordinal = ordinal;
     this.Entity  = entity;
     this.Member  = member;
     this.Tokens  = null;
     this.Keys    = null;
 }
Пример #2
0
 internal Schema(SchemaParser parser, string text, Metadata.IEntityMetadata entity, Type entityType, Collections.INamedCollection <SchemaMember> entries)
 {
     _parser         = parser ?? throw new ArgumentNullException(nameof(parser));
     this.Text       = text ?? throw new ArgumentNullException(nameof(text));
     this.Entity     = entity ?? throw new ArgumentNullException(nameof(entity));
     this.EntityType = entityType;
     _members        = entries ?? new Collections.NamedCollection <SchemaMember>(entry => entry.Name, StringComparer.OrdinalIgnoreCase);
 }
        public IDataPopulator GetPopulator(Metadata.IEntityMetadata entity, Type type, IDataReader reader)
        {
            var keys = new string[reader.FieldCount];

            for (int i = 0; i < reader.FieldCount; i++)
            {
                //获取字段名对应的属性名(注意:由查询引擎确保返回的记录列名就是属性名)
                keys[i] = reader.GetName(i);
            }

            return(new DictionaryPopulator(type, keys));
        }
Пример #4
0
            public PopulateToken(Metadata.IEntityMetadata entity, EntityMember member)
            {
                this.Ordinal = -1;
                this.Entity  = entity;
                this.Member  = member;
                this.Tokens  = new List <PopulateToken>();
                this.Keys    = new int[entity.Key.Length];

                for (int i = 0; i < this.Keys.Length; i++)
                {
                    this.Keys[i] = -1;
                }
            }
        public IDataPopulator GetPopulator(Metadata.IEntityMetadata entity, Type type, IDataReader reader)
        {
            //获取指定类型对应的装配器
            var populator = this.GetPopulator(type);

            if (populator == null)
            {
                //如果是可空类型,则获取可空类型的定义元类型
                if (type.IsValueType && type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable <>))
                {
                    populator = this.GetPopulator(type.GetGenericArguments()[0]);
                }
            }

            return(populator);
        }
Пример #6
0
 public UpdateStatement(Metadata.IEntityMetadata entity) : base(entity)
 {
     this.Fields = new List <FieldValue>();
     this.Tables = new List <TableIdentifier>();
     this.Tables.Add(this.Table);
 }