public override string BuildQueryString() { ObjectFields = Symbol.GetType().GetProperties().Where(o => !AvoidFields.Contains(o.Name) && !o.PropertyType.IsSubclassOf(typeof(ElectronTransferModel.Geo.Geometry))).Select(o => o.Name).ToList(); GeometryFields = new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION", "SDO_SEQ", "SDO_ESEQ", "SDO_ETYPE", "GDO_ATTRIBUTES" }; var tableName = Mapping.GetUpdateView(this.Type.Name); //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" }); string sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName, string.Join(",", AllFields.ToArray()), string.Join(",", AllFields.Select(o => ":" + o).ToArray()) ); return(sql); /* * List<Point> points = new List<Point>(); * if (Symbol.G3E_GEOMETRY is Point) * { * Point point = Symbol.G3E_GEOMETRY as Point; * points.Add(point); * } * else if (Symbol.G3E_GEOMETRY is Multipoint) * { * Multipoint multipoint = Symbol.G3E_GEOMETRY as Multipoint; * //points.Add(multipoint.Points); * } * else if (Symbol.G3E_GEOMETRY is LineString) * { * LineString lineString = Symbol.G3E_GEOMETRY as LineString; * points.AddRange(lineString.Points); * } * else if (Symbol.G3E_GEOMETRY is Polygon) * { * Polygon polygon = Symbol.G3E_GEOMETRY as Polygon; * points.AddRange(polygon.Lines.First().Points); * } * * int step = 4; * * for (int page = 0; page < (points.Count + step/2)/4; page++) * { * var items = points.Skip(page*step).Take(step); * for (int i = 0; i < items.Count(); i++) * { * string viewName = Mapping.GetUpdateView(Symbol.GetType().Name); * * //string sql = string.Format("INSERT INTO {0} ({1}) VALUES {2}",viewName); * } * } */ //string sql; }
public override string BuildQueryString() { GeometryFields = new string[] { "G3E_GEOMETRY" }; ObjectFields = Symbol.GetPropertyNames().Where(o => !AvoidFields.Contains(o) && !GeometryFields.Contains(o)).ToList(); var tableName = Mapping.GetTableName(this.Type.Name); //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" }); string sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName, string.Join(",", AllFields.ToArray()), string.Join(",", AllFields.Select(o => ":" + o).ToArray()) ); return(sql); }
public override string BuildQueryString() { GeometryFields = new string[] { "G3E_GEOMETRY" }; ObjectFields = Symbol.GetPropertyNames().Where(o => !AvoidFields.Contains(o) && o != "G3E_FID" && !GeometryFields.Contains(o)).ToList(); var tableName = Mapping.GetTableName(this.Type.Name); Expression <Func <ElectronSymbol, bool> > conditionExpression = o => o.G3E_FID == Symbol.G3E_FID; var conditionVisitor = new ConditionVisitor(conditionExpression); //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" }); string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", tableName, string.Join(",", AllFields.Select(o => string.Format("{0}=:{0}", o)).ToArray()), conditionVisitor ); return(sql); }
public override string BuildQueryString() { var properties = _entity.GetType().IsAnonymous() ? _entity.GetType().GetProperties() : this.Type.GetProperties().Where(o => !AvoidFields.Contains(o.Name)); var keyFields = KeyFieldCache.Instance.FindKeyFields(this.Type); this.Fields = properties.Where(o => !keyFields.Contains(o)).Concat(keyFields).Select(o => o.Name).ToList(); //to do var hasGeometry = properties.Any(o => o.Name == this.GeometryQuery.GeometryField); if (hasGeometry) { // for (int i = 0; i < parameterStrings.Length; i++) // { // if (parameterStrings[i] == "?G3E_GEOMETRY") // { // parameterStrings[i] = "GeomFromText(?G3E_GEOMETRY)"; // } // } } //var conditionVisitor = new ConditionVisitor(this.Expr); //key field must be not update field //foreach (var propertyInfo in keyFields) //{ // this.Fields.Add(propertyInfo.Name); //} var condition = string.Join(" AND ", keyFields.Select(o => string.Format("{0}={1}{0}", o.Name, Seperator)).ToArray()); return(string.Format("UPDATE {0} SET {1} WHERE {2} ", _byView? Mapping.GetUpdateView(Type.Name):Mapping.GetTableName(this.Type.Name), string.Join(",", properties.Where(o => !keyFields.Contains(o)).Select(o => string.Format("{0}={1}{0}", o.Name, Seperator)).ToArray()), condition)); }
public override string BuildQueryString() { var properties = _entity.GetType().IsAnonymous() ? _entity.GetType().GetProperties() : this.Type.GetProperties().Where(o => !AvoidFields.Contains(o.Name)); Fields = properties.Select(o => o.Name).ToList(); var hasGeometry = properties.Any(o => o.Name == this.GeometryQuery.GeometryField); var parameterStrings = Fields.Select(o => Seperator + o).ToArray(); return(string.Format("INSERT INTO {0} ({1}) VALUES ({2})", _byView? Mapping.GetUpdateView(Type.Name):Mapping.GetTableName(Type.Name), string.Join(",", properties.Select(o => o.Name).ToArray()), string.Join(",", parameterStrings))); }