Skip to content

Commit 060b3db

Browse files
authored
Optimize Entity field accessors (#221)
1 parent 0bcdb38 commit 060b3db

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Orm/Xtensive.Orm/Orm/Persistent.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public abstract class Persistent : SessionBound,
4242
/// </summary>
4343
public abstract TypeInfo TypeInfo { get; }
4444

45+
private FieldInfo[] persistentFields;
46+
private FieldInfo[] PersistentFields => persistentFields ??= TypeInfo.PersistentFields;
47+
4548
/// <summary>
4649
/// Gets the underlying tuple.
4750
/// </summary>
@@ -166,7 +169,7 @@ protected internal object GetFieldValue(string fieldName)
166169
}
167170

168171
protected internal T GetFieldValue<T>(int fieldIndex) =>
169-
GetNormalizedFieldValue<T>(TypeInfo.PersistentFields[fieldIndex]);
172+
GetNormalizedFieldValue<T>(PersistentFields[fieldIndex]);
170173

171174
/// <summary>
172175
/// Gets the field value.
@@ -363,7 +366,7 @@ protected internal void SetFieldValue(string fieldName, object value)
363366
}
364367

365368
protected internal void SetFieldValue<T>(int fieldIndex, T value) =>
366-
SetNormalizedFieldValue(TypeInfo.PersistentFields[fieldIndex], value, null, null);
369+
SetNormalizedFieldValue(PersistentFields[fieldIndex], value, null, null);
367370

368371
/// <summary>
369372
/// Sets the field value.

0 commit comments

Comments
 (0)