Skip to content

Commit e334a63

Browse files
committed
Clone(newName)
1 parent 45d6646 commit e334a63

File tree

4 files changed

+11
-13
lines changed

4 files changed

+11
-13
lines changed

Orm/Xtensive.Orm/Orm/Building/Builders/IndexBuilder.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -791,8 +791,7 @@ private IEnumerable<ColumnInfo> GatherValueColumns(IEnumerable<ColumnInfo> colum
791791
yield return column;
792792
}
793793
else if (!column.IsSystem) {
794-
var clone = column.Clone();
795-
clone.Name = nameBuilder.BuildColumnName(column);
794+
var clone = column.Clone(nameBuilder.BuildColumnName(column));
796795
clone.Field.MappingName = clone.Name;
797796
_ = valueColumns.Add(clone.Name);
798797
yield return clone;

Orm/Xtensive.Orm/Orm/Building/Builders/TypeBuilder.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ private FieldInfo BuildDeclaredField(TypeInfo type, FieldDef fieldDef)
325325
private void BuildInheritedField(TypeInfo type, FieldInfo inheritedField)
326326
{
327327
BuildLog.Info(nameof(Strings.LogBuildingInheritedFieldXY), type.Name, inheritedField.Name);
328-
var field = inheritedField.Clone();
328+
var field = inheritedField.Clone(null);
329329
type.Fields.Add(field);
330330
field.ReflectedType = type;
331331
field.DeclaringType = inheritedField.DeclaringType;
@@ -343,15 +343,15 @@ private void BuildNestedFields(FieldInfo source, FieldInfo target, IEnumerable<F
343343
var buffer = fields.ToList();
344344

345345
foreach (var field in buffer) {
346-
var clone = field.Clone();
346+
var newName = target.IsDeclared ? context.NameBuilder.BuildNestedFieldName(target, field) : null;
347+
var clone = field.Clone(newName);
347348
if (target.SkipVersion) {
348349
clone.SkipVersion = true;
349350
}
350351

351352
clone.IsSystem = false;
352353
clone.IsLazyLoad = field.IsLazyLoad || target.IsLazyLoad;
353354
if (target.IsDeclared) {
354-
clone.Name = context.NameBuilder.BuildNestedFieldName(target, field);
355355
clone.OriginalName = field.OriginalName;
356356
// One-field reference
357357
if (target.IsEntity && buffer.Count == 1) {
@@ -428,9 +428,8 @@ private ColumnInfo BuildDeclaredColumn(FieldInfo field)
428428

429429
private ColumnInfo BuildInheritedColumn(FieldInfo field, ColumnInfo ancestor)
430430
{
431-
var column = ancestor.Clone();
431+
var column = ancestor.Clone(context.NameBuilder.BuildColumnName(field, ancestor));
432432
column.Field = field;
433-
column.Name = context.NameBuilder.BuildColumnName(field, ancestor);
434433
column.IsDeclared = field.IsDeclared;
435434
column.IsPrimaryKey = field.IsPrimaryKey;
436435
column.IsNullable = field.IsNullable;

Orm/Xtensive.Orm/Orm/Model/ColumnInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,14 +242,14 @@ public override bool Equals(object obj) =>
242242
#region ICloneable methods
243243

244244
/// <inheritdoc/>
245-
object ICloneable.Clone() => Clone();
245+
object ICloneable.Clone() => Clone(null);
246246

247247
/// <summary>
248248
/// Clones this instance.
249249
/// </summary>
250-
public ColumnInfo Clone()
250+
public ColumnInfo Clone(string newName)
251251
{
252-
ColumnInfo clone = new(fld) { Name = Name };
252+
ColumnInfo clone = new(fld) { Name = newName ?? Name };
253253
clone.attributes = attributes;
254254
clone.valueType = valueType;
255255
clone.length = length;

Orm/Xtensive.Orm/Orm/Model/FieldInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -758,15 +758,15 @@ public override int GetHashCode()
758758
#region ICloneable methods
759759

760760
/// <inheritdoc/>
761-
object ICloneable.Clone() => Clone();
761+
object ICloneable.Clone() => Clone(null);
762762

763763
/// <summary>
764764
/// Clones this instance.
765765
/// </summary>
766-
public FieldInfo Clone()
766+
public FieldInfo Clone(string newName)
767767
{
768768
var clone = new FieldInfo(declaringType, reflectedType, Attributes) {
769-
Name = Name,
769+
Name = newName ?? Name,
770770
OriginalName = OriginalName,
771771
MappingName = MappingName,
772772
underlyingProperty = underlyingProperty,

0 commit comments

Comments
 (0)