コード例 #1
0
 static string SqlQuery(Field[] keys, IConnectionContext context, string tempTable, Field hashCode) {
     var names = string.Join(",", keys.Select(f => "k.[" + f.FieldName() + "]"));
     var table = context.Entity.OutputTableName(context.Process.Name);
     var joins = string.Join(" AND ", keys.Select(f => "o.[" + f.FieldName() + "] = k.[" + f.FieldName() + "]"));
     var sql = string.Format("SELECT {0},o.[{1}] FROM #{2} k WITH (NOLOCK) INNER JOIN [{3}] o WITH (NOLOCK) ON ({4})", names, hashCode.FieldName(), tempTable, table, joins);
     context.Debug(sql);
     return sql;
 }
コード例 #2
0
ファイル: SqlExtensions.cs プロジェクト: mindis/Pipeline.Net
 public static string SqlSelectInput(this IContext c, Field[] fields) {
     var fieldList = string.Join(",", fields.Select(f => "[" + f.Name + "]"));
     var noLock = c.Entity.NoLock ? "WITH (NOLOCK) " : string.Empty;
     var sql = $"SELECT {fieldList} FROM {SqlSchemaPrefix(c)}[{c.Entity.Name}] {noLock}";
     if (c.Entity.Filter.Any()) {
         sql += " WHERE " + c.ResolveFilter();
     }
     c.Debug(sql);
     return sql;
 }
コード例 #3
0
ファイル: Row.cs プロジェクト: mindis/Pipeline.Net
 public bool Match(Field[] fields, Row other) {
     return fields.Length > 1 ?
         fields.Select(f => this[f]).SequenceEqual(fields.Select(f => other[f])) :
         this[fields[0]].Equals(other[fields[0]]);
 }
コード例 #4
0
ファイル: Row.cs プロジェクト: mindis/Pipeline.Net
 public IEnumerable<object> ToEnumerable(Field[] fields) {
     return fields.Select(f => _storage[_index(f)]);
 }
コード例 #5
0
 static string SqlInsertTemplate(IConnectionContext context, string tempTable, Field[] keys) {
     var sql = string.Format("INSERT #{0} VALUES ({1});", tempTable, string.Join(",", keys.Select(k => "@" + k.FieldName())));
     context.Debug(sql);
     return sql;
 }