Wiem, że mogę rozwiązać ten problem, przesuwając wszystko w jedną całość, zamiast zagnieżdżać typy złożone (ponieważ są to tylko odwzorowania 1-1), ale podoba mi się sposób, w jaki grupuje właściwości w wygenerowanym OM.EF 4.2, CodeFirst - Właściwość nawigacji wewnątrz typu złożonego
Mam jednostkę klienta, która zawiera typ złożony "CrmData". Encja CrmData ma złożony typ adresu.
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; }
}
W WojewództwoRegion & rodzaje CountryRegion są podmioty w moim DB (podobny do tego, jak próbka AdventureWorks DB działa). Problem polega na tym, że gdy EF próbuje utworzyć model, kończy się niepowodzeniem z:
Typ "MyCo.Crm.Entities.StateProvince" został już skonfigurowany jako typ jednostki. Nie można go przekonfigurować jako złożonego typu.
Próbowałem uczynić usługę stanową złożonym typem, ale to nie rozwiązuje problemu. Pomysły?
public class StateProvince {
[Key]
public int StateProvinceId { get; set; }
[MaxLength(3)]
public string StateProvinceCode { get; set; }
[MaxLength(50)]
public string Name { get; set; }
}
Bez failright po Zamieściłem to w końcu znalazłem innego wątku, że wspomniany odpowiedź ... w tym przypadku myślę, że zrobię mój stan i właściwości ciągów i country przechowuj kody, tak jak wolałbym zajmować się odnośnikami, tak jak lubię model, który mam. Jedynym minusem jest element walidacji, ale mogę sobie z tym poradzić w inny sposób. –