Я пытаюсь создать класс сущностей, который будет предоставлять связанную коллекцию через свойство только для чтения, например:
public class MyEntity: Entity
{
public int Id{ get; private set; }
private IList<RelatedEntity> _relatedEntities = new List<RelatedEntity>();
public IReadOnlyList<RelatedEntity> RelatedEntities => _relatedEntities.ToList().AsReadOnly();
}
Класс построителя выглядит следующим образом:
public void Configure(EntityTypeBuilder<MyEntity> builder)
{
builder.HasKey(x=>x.Id);
builder.Property<IReadOnlyList<RelatedEntity>>("RelatedEntities")
.HasField("_relatedEntities ")
.UsePropertyAccessMode(PropertyAccessMode.Field);
}
Он строит, но вылетает во время выполнения за исключением:
InvalidOperationException: указанное поле '_relatedEntities' типа 'IList' нельзя использовать для свойства 'MyEntity.RelatedEntities' типа 'IReadOnlyList'.Можно использовать только вспомогательные поля типов, которые можно назначить из типа свойства.
Не могли бы вы привести рабочий пример, как решить эту проблему?