EF 4.2, CodeFirst - Navigation property within a complext type

Я знаю, что могу решить эту проблему, объединив все в одну сущность, а не вложенные сложные типы (поскольку они являются просто 1-1 отображениями), но мне нравится, как он группирует свойства в сгенерированном OM.

У меня есть сущность 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 сложным типом, но это не решает проблему. Ideas?

public class StateProvince {
  [Key]
  public int StateProvinceId { get; set; }

  [MaxLength(3)]
  public string StateProvinceCode { get; set; }

  [MaxLength(50)]
  public string Name { get; set; }
}
7
задан Andrew Connell 23 December 2011 в 12:21
поделиться