* Include automatic relation type aliases from factory and fix SQL parameter overflow (#15141)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations (#15160)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations
* Always get all automatic relation type aliases
* Do not set relation type alias for unknown entity types
* Get references from recursive (nested/block) properties
(cherry picked from commit 5198e7c52d)
29 lines
908 B
C#
29 lines
908 B
C#
using System.Collections;
|
|
|
|
namespace Umbraco.Cms.Core.Composing;
|
|
|
|
/// <summary>
|
|
/// Provides a base class for builder collections.
|
|
/// </summary>
|
|
/// <typeparam name="TItem">The type of the items.</typeparam>
|
|
public abstract class BuilderCollectionBase<TItem> : IBuilderCollection<TItem>
|
|
{
|
|
private readonly LazyReadOnlyCollection<TItem> _items;
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="BuilderCollectionBase{TItem}" /> with items.
|
|
/// </summary>
|
|
/// <param name="items">The items.</param>
|
|
public BuilderCollectionBase(Func<IEnumerable<TItem>> items)
|
|
=> _items = new LazyReadOnlyCollection<TItem>(items);
|
|
|
|
/// <inheritdoc />
|
|
public int Count => _items.Count;
|
|
|
|
/// <inheritdoc />
|
|
public IEnumerator<TItem> GetEnumerator() => _items.GetEnumerator();
|
|
|
|
/// <inheritdoc />
|
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
|
}
|