Баг при наследовании?
От: Serg876  
Дата: 22.06.10 04:12
Оценка:
Всем привет.

Ситуация вот какая. Есть классы: class A, class B : A и class C.
В классе А определен дескриминатор:
[MapField(IsInheritanceDiscriminator = true)]
public int ElemType { get; set; }

В классе B определен Relation:
[Relation(typeof(C), SlaveIndex1 = "ID", MasterIndex1 = "ID")]
public List<C> lst= new List<C>();

В классе С тоже определен Relation:
[Relation(typeof(B), SlaveIndex1 = "ID", MasterIndex1 = "ID")]
public B elem = new B();

Теперь когда мы в приложении делаем так:
var _dbAccessor = DataAccessor.CreateInstance<dbAccessor>();
var set = new MapResultSet[2];
set[0] = new MapResultSet(typeof(A));
set[1] = new MapResultSet(typeof(C));
IDataReader reader = _dbAccessor.GetElemByID(_dbAccessor.GetDbManager(), id);// ридер возвращает 2 датасета, один из объектов класса B, другой — класса С.
var schema = new MappingSchema();
schema.MapDataReaderToResultSet(reader, set);

Мы рассчитываем на то, что инструмент определит, что у него должно быть два набора элементов, в set[0] — объекты класса B, в set[1] — класса С, и правильно настроит связи между ними. Но этого не происходит. Т.е связи не устанавливаются.

Вопрос, как сделать так, чтобы они устанавливались?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.