Re[5]: Вопрос по вложенным классам
От: Блудов Павел Россия  
Дата: 06.06.06 02:12
Оценка: +1
Здравствуйте, IT!

Вылезл ещё один тонкий момент. В DataAccessBuilder'е имеем:
        public FieldBuilder GetIndexField(string[] index)
        {
            string id = "index$" + string.Join(".", index);

Так вот, в случае с вложенными классами можно получить чужой индекс. Как-то так:
public abstract class RecordHeader : EditableObject
{
    [MaxLength(50), Required]
    public abstract string Last { get; set; }
    [MaxLength(50), Required]
    public abstract string First { get; set; }
    [MaxLength(50), NullValue("")]
    public abstract string Middle { get; set; }
}

public abstract Person
{
    [MapIgnore(false)]
    public abstract RecordHeader Name { get; set; }
    [PrimaryKey, NonUpdatable]
    public abstract string First { get; set; }
}


Тут GetIndexField сгородит одинаковый идентификатор для индекса MapIndex(Name.First) и для MapIndex(Name, First).
Я точку конечно заменю на что-то более экзотическое (две, нет, три! точки ) но проблему в корне это не решит, т.к. всегда можно посмотреть рефлектором имя переменной для индекса и задать его через MapFieldAttribute. На это закладываться смысла нет, чтобы не скатиться до гиудов, но точку точно нужно заменить.
... << RSDN@Home 1.2.0 alpha rev. 642>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.