Getting это:Почему EF 4.1 код первого возвращает HashSet вместо коллекции
System.Collections.Generic.HashSet`1[Counter]
Ожидая это:
ICollection<Counter>
// базовый объект:
public virtual ICollection<Counter> Counters { get; private set; }
Я м с использованием DevExpress PropertyGridControl:
dxprg:CollectionDefinition Path="Counters" Type="{x:Type efo:Counter}"
Я рассматриваю это нормальное поведение для EF, учитывая, что я не вызываю никакой функции в коллекции счетчиков, например, ToList(), но из-за свойства Path в CollectionDefenition неясно, как это сделать. Я мог бы создать объект в реальном времени, заполнить его равными значениями, сгенерировать коллекцию, а затем привязать к ней, но это кажется действительно грязным.
Любая мудрость о том, что происходит здесь в отношении EF приветствуется ..
OK, это имеет смысл. Таким образом, мне нужно будет создать объект на уровне пользовательского интерфейса с помощью коллекции typeof как «конкретный класс». Правильно ли это? – VipX1
Если вы инициализируете коллекцию самостоятельно, да, это должна быть реализация 'ICollection'. HashSet также хорошо работает, потому что он имеет уникальные элементы, поэтому они хорошо сопоставляются с записями базы данных. –
'[NotMapped] public IList CountersList { get {вернуть это.Counters.ToList(); } } 'Размещено в объекте счетчика объектов. Решает проблему достаточно аккуратно. Спасибо, Герт. –
VipX1