Контекст:
Я пытаюсь использовать один и тот же набор моделей для десериализации XML и сохранения данных EF 4.1. Я не могу изменить ни существующую XSD, ни схему базы данных.
Проблема:
Структура XML не очень хорошо согласуется со структурой таблицы для нескольких моделей. В настоящее время отношение «один ко многим» базы данных определяется в (на основе XML) моделях как трехуровневая иерархия parent-child-child. Это вызывает ошибку:
Выражение 't => t.PhysicalDetails.PhysicalFeatures'
не является допустимым выражением свойства.
Участник
class Participant {
public PhysicalDetailsType PhysicalDetails { get; set; }
}
PhysicalDetailsType
class PhysicalDetailsType {
[XmlArray("PersonPhysicalFeature")]
public List<PhysicalFeatureType> PhysicalFeatures { get; set; }
}
PhysicalFeatureType
class PhysicalFeatureType {
public int CaseSk { get; set; }
public int ParticipantSk { get; set; }
public Participant participant { get; set; }
}
Отображение EF PhysicalFeatureTypeType
class PhysicalFeatureMap : EntityTypeConfiguration<PhysicalFeatureType> {
HasRequired(t => t.Participant)
.WithMany(t => t.PhysicalDetails.PhysicalFeatures)
.HasForeignKey(d => new { d.CaseSk, d.ParticipantSk});
}