Skip to content

Commit 1bffc92

Browse files
committed
Optimize ColumnInfoRef
1 parent cb8503b commit 1bffc92

3 files changed

Lines changed: 6 additions & 10 deletions

File tree

Orm/Xtensive.Orm/Orm/Model/ColumnInfoRef.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ namespace Xtensive.Orm.Model
4040
/// </summary>
4141
public CultureInfo CultureInfo { get; }
4242

43-
public bool HasValue => TypeName != null;
44-
4543
/// <summary>
4644
/// Resolves this instance to <see cref="ColumnInfo"/> object within specified <paramref name="model"/>.
4745
/// </summary>

Orm/Xtensive.Orm/Orm/Rse/MappedColumn.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ public sealed class MappedColumn : Column
1717
{
1818
private const string ToStringFormat = "{0} = {1}";
1919

20+
private readonly ColumnInfoRef _columnInfo;
2021
/// <summary>
2122
/// Gets the reference that describes a column.
2223
/// </summary>
23-
public ColumnInfoRef ColumnInfoRef { get; }
24+
public ref readonly ColumnInfoRef ColumnInfoRef => ref _columnInfo;
2425

2526
/// <inheritdoc/>
2627
public override string ToString()
@@ -76,7 +77,7 @@ public MappedColumn(in ColumnInfoRef columnInfoRef, int index, Type type)
7677
public MappedColumn(in ColumnInfoRef columnInfoRef, string name, int index, Type type)
7778
: base(name, index, type, null)
7879
{
79-
ColumnInfoRef = columnInfoRef;
80+
_columnInfo = columnInfoRef;
8081
}
8182

8283
#endregion
@@ -86,13 +87,13 @@ public MappedColumn(in ColumnInfoRef columnInfoRef, string name, int index, Type
8687
private MappedColumn(MappedColumn column, string newName)
8788
: base(newName, column.Index, column.Type, column)
8889
{
89-
ColumnInfoRef = column.ColumnInfoRef;
90+
_columnInfo = column.ColumnInfoRef;
9091
}
9192

9293
private MappedColumn(MappedColumn column, int newIndex)
9394
: base(column.Name, newIndex, column.Type, column)
9495
{
95-
ColumnInfoRef = column.ColumnInfoRef;
96+
_columnInfo = column.ColumnInfoRef;
9697
}
9798

9899
#endregion

Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/OrderProviderBase.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ protected override void Initialize()
6767
for (int i = 0; i < Order.Count; i++) {
6868
var orderItem = Order[i];
6969
var column = Header.Columns[orderItem.Key];
70-
var columnInfoRef = (column as MappedColumn)?.ColumnInfoRef;
71-
var culture = columnInfoRef?.HasValue == true
72-
? columnInfoRef.Value.CultureInfo
73-
: CultureInfo.InvariantCulture;
70+
var culture = (column as MappedColumn)?.ColumnInfoRef.CultureInfo ?? CultureInfo.InvariantCulture;
7471
comparisonRules[i] = new ComparisonRule(orderItem.Value, culture);
7572
}
7673

0 commit comments

Comments
 (0)