Здравствуйте.
Скажите пожалуйста, ни у кого не было такого, что при енумерации 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>>