двоятся элементы в MapDescriptor.AllMembers
От: oleksab Украина  
Дата: 29.12.05 10:50
Оценка:
Здравствуйте.

Скажите пожалуйста, ни у кого не было такого, что при енумерации foreach-м MapDescriptor.AllMembers для определенного типа эти самые члены там "задвоялись"?
То есть выводятся для типа Country два CountryID, два CountryCode и т.д. Я видел, что AllMembers — это Hashtable, но "маємо те, що маємо"
При чем это происходит после того, как список объектов этого типа был загружен с помощью DbManager-a.

К сожалению, на рабочем проекте это воспроизводится, на тестах рабочего проекта тоже воспроизводится, а на тестовом (чтобы можно было здесь показать) — нет. Воспроизводится так, что если закомментировать вызов db.GetSpCommand и вернуть пустой список, созданный с помощью new, то и при втором переборе AllMembers не задваиваются.

    MapDescriptor md = Map.Descriptor(typeof(Country));
    foreach (IMemberMapper mm in md.AllMembers)
    {
        // здесь все хорошо - сколько есть public property, столько их и выводится
        Console.WriteLine(mm.Name);
    }

    [...]
    
    using (DbManager db = new DbManager(_configurationCW))
    {
        al = db.SetSpCommand(new Program().GetSpName(typeof(Country), "SelAll"), null).ExecuteList<Country>();
    }

    [...]

    MapDescriptor md = Map.Descriptor(typeof(Country));
    foreach (IMemberMapper mm in md.AllMembers)
    {
        // здесь все плохо - public property выводятся по два раза
        Console.WriteLine(mm.Name);
    }


PS Новый год начнем первый раз праздновать сегодня вечером
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.