Beispiel #1
0
 protected override NLinq.Expressions.Identifier VisitIdentifier(NLinq.Expressions.Identifier identifier)
 {
     lastField = new Field(identifier.Text, false);
     Fields.Add(lastField);
     return identifier;
 }
Beispiel #2
0
 /// <summary>
 /// Creates the parameter.
 /// </summary>
 /// <remarks>
 /// The parameter will be null if the command already contains a parameter for this field.
 /// </remarks>
 /// <param name="command">The command.</param>
 /// <param name="field">The field.</param>
 /// <returns></returns>
 private ValuedParameter CreateParameter(IDbStatement command, Field field)
 {
     if (command.Parameters.ContainsKey(field.ColumnName.Text))
         return null;
     ValuedParameter param = new ValuedParameter(field.ColumnName.Text, null, field.DbType, ParameterDirection.Input);
     param.Precision = field.Precision;
     param.Scale = field.Scale;
     param.Size = field.Size;
     return param;
 }
Beispiel #3
0
        public void Initialize()
        {
            if (initialized)
                return;
            initialized = true;
            if (ParentTable == null)
                ParentTable = Mapping.Tables[ParentSchema + "." + ParentTableName];

            if (ChildTable == null)
            {
                if (Mapping.Tables.ContainsKey(ChildSchema + "." + ChildTableName))
                    ChildTable = Mapping.Tables[ChildSchema + "." + ChildTableName];
                else
                    ChildTable = Mapping.Tables[ChildSchema + "." + ChildTableName] = new Table(ChildSchema, ChildTableName);
            }
            string[] parentFieldNames = ParentFieldNames.Split(',');
            string[] childFieldNames = ChildFieldNames.Split(',');

            for (int i = 0; i < parentFieldNames.Length; i++)
            {
                string parentField = parentFieldNames[i].Trim();
                string childField = childFieldNames[i].Trim();
                if (ParentTable.Fields.ContainsKey(parentField))
                    ParentFields.Add(ParentTable.Fields[parentField]);
                else
                {
                    Field field;
                    if (ChildTable.Fields.ContainsKey(childField))
                    {
                        field = ChildTable.Fields[childField].Clone(ParentTable, parentField);
                        field.IsPrimaryKey = false;
                        field.IsNullable = true;
                    }
                    else
                        field = new Field(ParentTable, parentField, false);
                    ParentTable.Fields.Add(field.ColumnName.Text, field);
                    ParentFields.Add(field);
                }
                if (ChildTable.Fields.ContainsKey(childField))
                    ChildFields.Add(ChildTable.Fields[childField]);
                else
                {
                    Field field = ParentFields[i].Clone(ChildTable, childField);
                    field.IsPrimaryKey = false;
                    field.IsIdentity = false;
                    field.IsNullable = true;
                    ChildTable.Fields.Add(field.ColumnName.Text, field);
                    ChildFields.Add(field);
                }
            }
        }
Beispiel #4
0
 private ValuedParameter AddParameter(IDbStatement command, Field field, object value)
 {
     ValuedParameter param = CreateParameter(command, field);
     if (param == null)
         return param;
     param.Value = value ?? DBNull.Value;
     command.Add(param);
     return param;
 }