protected override NLinq.Expressions.Identifier VisitIdentifier(NLinq.Expressions.Identifier identifier) { lastField = new Field(identifier.Text, false); Fields.Add(lastField); return identifier; }
/// <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; }
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); } } }
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; }