internal Schema(Metadata.IDataEntity entity, Type entityType, SchemaMember member) { this.Entity = entity ?? throw new ArgumentNullException(nameof(entity)); this.EntityType = entityType; _members = new Collections.NamedCollection <SchemaMember>(entry => entry.Name, StringComparer.OrdinalIgnoreCase); _members.Add(member); }
internal Schema(SchemaParser parser, string text, Metadata.IDataEntity 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 PopulateToken(Metadata.IDataEntity entity, EntityMember member, int ordinal) { this.Ordinal = ordinal; this.Entity = entity; this.Member = member; this.Tokens = null; this.Keys = null; }
public IDataPopulator GetPopulator(Metadata.IDataEntity 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)); }
public PopulateToken(Metadata.IDataEntity 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.IDataEntity 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); }
public IDataPopulator GetPopulator(Metadata.IDataEntity entity, Type type, IDataReader reader) { return(Zongsoft.Common.TypeExtension.IsNullable(type, out var underlyingType) ? this.GetPopulator(underlyingType, true) : this.GetPopulator(type, false)); }
public UpdateStatement(Metadata.IDataEntity entity, SchemaMember schema = null) : base(entity, schema) { this.Fields = new List <FieldValue>(); this.Tables = new List <TableIdentifier>(); this.Tables.Add(this.Table); }
public SubqueryStatement(IStatementBase host, Metadata.IDataEntity entity) : base(new TableIdentifier(entity)) { this.Host = host ?? throw new ArgumentNullException(nameof(host)); }