protected override Expression VisitCollection(CollectionExpression collection) { var newAlias = new Alias(); _map[collection.Alias] = newAlias; return(new CollectionExpression(newAlias, collection.Database, collection.CollectionName, collection.DocumentType)); }
public Expression VisitCollection([NotNull] CollectionExpression collectionExpression) { Check.NotNull(collectionExpression, nameof(collectionExpression)); _bsonCommandBuilder.AddCollection(collectionExpression.Name, collectionExpression.EntityType); return(collectionExpression); }
public void AddCollection(string col, string alias) { var expr = new CollectionExpression { Source = col, Target = alias }; expr.SetParent(this); _collections.Add(expr); }
public void AddCollection(string col) { var expr = new CollectionExpression { Source = col }; expr.SetParent(this); _collections.Add(expr); }
protected virtual void VisitCollectionExpression(StringBuilder builder, CollectionExpression exp) { if (exp == null) { return; } StringBuilder sb = new StringBuilder(); sb.Append(string.Join(", ", Enumerable.ToArray(EnumerableToParameterConverter(exp.Collection)))); if (sb.Length > 0) { builder.AppendFormat("({0})", sb); } }
public Expression VisitCollection(CollectionExpression collectionExpression) { _bsonCommandBuilder.AddCollection(collectionExpression.Name, collectionExpression.EntityType); return(collectionExpression); }
public AttributesCollectionExpression(CollectionExpression <PropertyNameExpression> attributesCollectionExpression) : base("AttributesCollection", attributesCollectionExpression) { }
protected override QueryExpression VisitCollection(TContext context, CollectionExpression expression) { return(expression); }
protected override Expression VisitCollection(CollectionExpression collection) { _aliases.Add(collection.Alias); return(collection); }
protected override Expression VisitCollection(QueryTranslatorContext context, CollectionExpression expression) { var properties = new Queue <PropertyInfo>(expression.Properties); var accessor = Expression.MakeMemberAccess(context.Parameter, properties.Dequeue()); while (properties.Count > 0) { accessor = Expression.MakeMemberAccess(accessor, properties.Dequeue()); } return(accessor); }
public OrderByCollectionExpression(CollectionExpression <OrderByExpression> orderByCollectionExpression) : base("OrderByCollection", orderByCollectionExpression) { }
protected abstract void VisitCollection(TContext context, CollectionExpression expression);
object IQueryExpressionVisitor <TContext, object> .VisitCollection(TContext context, CollectionExpression expression) { VisitCollection(context, expression); return(null); }
protected override DataTable BuildSchemaTable(Boolean withGeometryColumn) { DataTable dt = null; using (NpgsqlConnection conn = new NpgsqlConnection(ConnectionString)) { conn.Open(); CollectionExpression <PropertyNameExpression> attributes = null; if (DefaultProviderProperties != null) { attributes = GetProviderPropertyValue <AttributesCollectionExpression, CollectionExpression <PropertyNameExpression> >( DefaultProviderProperties.ProviderProperties, null); } string columns = attributes == null ? "*" : string.Join(",", Enumerable.ToArray(Processor.Select(attributes, delegate( PropertyNameExpression o) { return (QualifyColumnName ( o. PropertyName)); }))); if (columns != "*") { if (!columns.Contains(QualifyColumnName(GeometryColumn))) { columns = string.Format("{0},{1}", QualifyColumnName(GeometryColumn), columns); } if (!columns.Contains(QualifyColumnName(OidColumn))) { columns = string.Format("{0},{1}", QualifyColumnName(OidColumn), columns); } } using ( NpgsqlCommand cmd = new NpgsqlCommand(string.Format("SELECT {0} FROM {1} LIMIT 1;", columns, QualifiedTableName), conn)) { NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); DataSet ds = new DataSet(); da.FillSchema(ds, SchemaType.Source); dt = ds.Tables["Table"]; } conn.Close(); } if (!dt.Columns.Contains("oid") && HasOids) { dt.Columns.Add(new DataColumn("oid", typeof(Int64))); DataColumn dc = dt.Columns["oid"]; dc.SetOrdinal(0); if (dt.Constraints.Count == 0) { dt.Constraints.Add("PK", dt.Columns[0], true); } } for (int i = 0; i < dt.Columns.Count; i++) { if (dt.Columns[i].ColumnName == GeometryColumn) { dt.Columns[i].DataType = typeof(Byte[]); } } if (!withGeometryColumn) { dt.Columns.Remove(GeometryColumn); } //remove Primary Key to avoid possibliy mismatched PrimaryKey of FeatureDataTable dt.PrimaryKey = null; return(dt); }