Skip to content

Commit e7961ae

Browse files
committed
No Enumerable.Last() calls
1 parent 99ff9c5 commit e7961ae

9 files changed

Lines changed: 15 additions & 15 deletions

File tree

Orm/Xtensive.Orm/Orm/EntitySetBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -949,7 +949,7 @@ private EntitySetTypeState GetEntitySetTypeState()
949949

950950
private static EntitySetTypeState BuildEntitySetTypeState(FieldInfo field, EntitySetBase entitySet)
951951
{
952-
var association = field.Associations.Last();
952+
var association = field.Associations[^1];
953953
var query = association.UnderlyingIndex.GetQuery().Seek(context => context.GetValue(keyParameter));
954954
var seek = entitySet.Session.Compile(query);
955955
var ownerDescriptor = association.OwnerType.Key.TupleDescriptor;
@@ -1060,7 +1060,7 @@ protected EntitySetBase(Entity owner, FieldInfo field)
10601060
this.owner = owner;
10611061
Field = field;
10621062
State = new EntitySetState(this);
1063-
var association = Field.Associations.Last();
1063+
var association = Field.Associations[^1];
10641064
if (association.AuxiliaryType != null && association.IsMaster) {
10651065
var domain = Session.Domain;
10661066
var itemType = domain.Model.Types[Field.ItemType];

Orm/Xtensive.Orm/Orm/Internals/Prefetch/EntitySetTask.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ internal sealed class EntitySetTask : IEquatable<EntitySetTask>
5656
private static readonly Parameter<int> itemCountLimitParameter = new Parameter<int>("ItemCountLimit");
5757

5858
private static readonly Func<ItemsQueryCacheKey, CompilableProvider> CreateRecordSetLoadingItems = cachingKey => {
59-
var association = cachingKey.ReferencingField.Associations.Last();
59+
var association = cachingKey.ReferencingField.Associations[^1];
6060
var primaryTargetIndex = association.TargetType.Indexes.PrimaryIndex;
6161
var resultColumns = new List<int>(primaryTargetIndex.Columns.Count);
6262
var result = association.AuxiliaryType == null
@@ -104,7 +104,7 @@ public void UpdateCache()
104104
var reader = manager.Owner.Session.Domain.EntityDataReader;
105105
var records = reader.Read(itemsQueryTask.Result, QueryProvider.Header, manager.Owner.Session);
106106
var entityKeys = new List<Key>(itemsQueryTask.Result.Count);
107-
var association = ReferencingField.Associations.Last();
107+
var association = ReferencingField.Associations[^1];
108108
var auxEntities = (association.AuxiliaryType != null)
109109
? new List<Pair<Key, Tuple>>(itemsQueryTask.Result.Count)
110110
: null;
@@ -191,7 +191,7 @@ private QueryTask CreateQueryTask()
191191

192192
private static CompilableProvider CreateQueryForAssociationViaAuxType(in ItemsQueryCacheKey cachingKey, IndexInfo primaryTargetIndex, List<int> resultColumns)
193193
{
194-
var association = cachingKey.ReferencingField.Associations.Last();
194+
var association = cachingKey.ReferencingField.Associations[^1];
195195
var associationIndex = association.UnderlyingIndex;
196196
var joiningColumns = GetJoiningColumnIndexes(primaryTargetIndex, associationIndex,
197197
association.AuxiliaryType != null);
@@ -213,7 +213,7 @@ private static CompilableProvider CreateQueryForAssociationViaAuxType(in ItemsQu
213213
private static CompilableProvider CreateQueryForDirectAssociation(in ItemsQueryCacheKey cachingKey, IndexInfo primaryTargetIndex, List<int> resultColumns)
214214
{
215215
AddResultColumnIndexes(resultColumns, primaryTargetIndex, 0);
216-
var association = cachingKey.ReferencingField.Associations.Last();
216+
var association = cachingKey.ReferencingField.Associations[^1];
217217
var field = association.Reversed.OwnerField;
218218
var keyColumnTypes = field.Columns.SelectToArray(column => column.ValueType);
219219
return primaryTargetIndex

Orm/Xtensive.Orm/Orm/Internals/Prefetch/GraphContainer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private static bool AreAllForeignKeyColumnsLoaded(EntityState state, FieldInfo f
141141
private void RegisterFetchByKnownForeignKey(PrefetchFieldDescriptor referencingFieldDescriptor,
142142
EntityState ownerState)
143143
{
144-
var association = referencingFieldDescriptor.Field.Associations.Last();
144+
var association = referencingFieldDescriptor.Field.Associations[^1];
145145
var referencedKeyTuple = association
146146
.ExtractForeignKey(ownerState.Type, ownerState.Tuple);
147147
var referencedKeyTupleState = referencedKeyTuple.GetFieldStateMap(TupleFieldState.Null);

Orm/Xtensive.Orm/Orm/Internals/Prefetch/ReferencedEntityContainer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void NotifyOwnerAboutKeyWithUnknownType()
6666

6767
private Tuple ExtractForeignKeyTuple(EntityState ownerState)
6868
{
69-
var association = ReferencingField.Associations.Last();
69+
var association = ReferencingField.Associations[^1];
7070
var result = association.ExtractForeignKey(ownerState.Type, ownerState.Tuple);
7171
var tupleState = result.GetFieldStateMap(TupleFieldState.Null);
7272
for (int i = 0; i < result.Count; i++) {
@@ -118,7 +118,7 @@ private void FillColumnCollection()
118118

119119
public ReferencedEntityContainer(Key ownerKey, PrefetchFieldDescriptor referencingFieldDescriptor,
120120
bool isOwnerTypeKnown, PrefetchManager manager)
121-
: base(null, referencingFieldDescriptor.Field.Associations.Last().TargetType, true, manager)
121+
: base(null, referencingFieldDescriptor.Field.Associations[^1].TargetType, true, manager)
122122
{
123123
ArgumentValidator.EnsureArgumentNotNull(referencingFieldDescriptor, "referencingFieldDescriptor");
124124
ArgumentValidator.EnsureArgumentNotNull(ownerKey, "ownerKey");

Orm/Xtensive.Orm/Orm/Linq/QueryHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public static Expression CreateEntitySetQuery(Expression ownerEntity, FieldInfo
115115
}
116116

117117
var elementType = field.ItemType;
118-
var association = field.Associations.Last();
118+
var association = field.Associations[^1];
119119
if (association.Multiplicity==Multiplicity.OneToMany) {
120120
var targetField = association.TargetType.Fields[association.Reversed.OwnerField.Name];
121121
var whereParameter = Expression.Parameter(elementType, "p");

Orm/Xtensive.Orm/Orm/Operations/KeyGenerateOperation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private void MapCompositeKey(OperationExecutionContext context)
6666
columnIndex++;
6767
}
6868
else {
69-
var association = keyField.Associations.Last();
69+
var association = keyField.Associations[^1];
7070
var componentKeyValue = Tuple.Create(association.TargetType.Key.TupleDescriptor);
7171
sourceTuple.CopyTo(componentKeyValue, columnIndex, keyField.MappingInfo.Length);
7272
var componentKey = Key.Create(domain, nodeId, association.TargetType.UnderlyingType,

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Paging.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private SqlProvider VisitPagingRowNumber(PagingProvider provider)
131131
var source = compiledSource.Request.Statement;
132132
var queryRef = SqlDml.QueryRef(source);
133133
var query = SqlDml.Select(queryRef);
134-
var rowNumberColumn = queryRef.Columns.Last();
134+
var rowNumberColumn = queryRef.Columns[^1];
135135
query.Columns.AddRange(queryRef.Columns);
136136
query.Where = SqlDml.Between(rowNumberColumn,
137137
fromParameterBinding.ParameterReference,

Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ protected override SqlProvider VisitRowNumber(RowNumberProvider provider)
528528

529529
var query = ExtractSqlSelect(provider, source);
530530
var rowNumber = SqlDml.RowNumber();
531-
query.Columns.Add(rowNumber, header.Columns.Last().Name);
531+
query.Columns.Add(rowNumber, header.Columns[^1].Name);
532532
var columns = ExtractColumnExpressions(query);
533533
foreach (var order in directionCollection)
534534
rowNumber.OrderBy.Add(columns[order.Key], order.Value==Direction.Positive);

Orm/Xtensive.Orm/Orm/Rse/Transformation/ColumnMappingInspector.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ protected override Provider VisitInclude(IncludeProvider provider)
4444
var source = VisitCompilable(provider.Source);
4545

4646
var currentMapping = mappings[provider.Source];
47-
var calulatedColumn = provider.Header.Columns.Last();
47+
var calulatedColumn = provider.Header.Columns[^1];
4848
mappings[provider] = Merge(currentMapping, EnumerableUtils.One(calulatedColumn.Index));
4949
if (source == provider.Source) {
5050
return provider;
@@ -326,7 +326,7 @@ protected override Provider VisitRowNumber(RowNumberProvider provider)
326326
mappings[provider.Source] = mappings[provider].Where(i => i < sourceLength).ToList();
327327
var newSource = VisitCompilable(provider.Source);
328328
var currentMapping = mappings[provider.Source];
329-
var rowNumberColumn = provider.Header.Columns.Last();
329+
var rowNumberColumn = provider.Header.Columns[^1];
330330
mappings[provider] = Merge(currentMapping, EnumerableUtils.One(rowNumberColumn.Index));
331331
return newSource == provider.Source
332332
? provider

0 commit comments

Comments
 (0)