Я знаю, что могу решить эту проблему, помещая все в одну сущность, а не вкладывая сложные типы (поскольку они представляют собой только 1-1 отображения), но мне нравится, как он группирует свойства в сгенерированном ОМ.
У меня есть объект Customer, который содержит полный тип "CrmData". Сущность CrmData имеет сложный тип адреса.
public class Customer {
[Required]
public CrmSpecificData CrmData { get; set; }
}
[ComplexType]
public class CrmSpecificData {
[MaxLength(40)]
public string FirstName { get; set; }
[MaxLength(80)]
public string LastName { get; set; }
public Address Address { get; set; }
}
[ComplexType]
public class Address {
[MaxLength(150)]
public string Address1 { get; set; }
[MaxLength(150)]
public string Address2 { get; set; }
[MaxLength(100)]
public string City { get; set; }
[MaxLength(15)]
public string PostalCode { get; set; }
public StateProvince StateOrProvince { get; set; }
public virtual CountryRegion CountryOrRegion { get; set; }
}
Типы StateProvince & CountryRegion - это объекты в моей БД (аналогично тому, как работает пример БД AdventureWorks). Проблема заключается в том, что когда EF пытается создать модель, она завершается с:
Тип 'MyCo.Crm.Entities.StateProvince' уже настроен как тип сущности. Он не может быть переконфигурирован как сложный тип ..
Я пытался сделать StateProvince сложным типом, но это не решает проблему. Идеи?
public class StateProvince {
[Key]
public int StateProvinceId { get; set; }
[MaxLength(3)]
public string StateProvinceCode { get; set; }
[MaxLength(50)]
public string Name { get; set; }
}