Здравствуйте, 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>>