Mi Modelo:EF-Code primer tipo complejo con una propiedad de navegación
public class Country
{
public int CountryId { get; set; }
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class Location
{
public string Address { get; set; }
public virtual int CountryId { get; set; }
public virtual Country Country { get; set; }
}
public class User{
protected User()
{
Location = new Location();
}
public int UserId { get; set; }
public Location Location { get; set; }
}
Al generar la base de datos, me sale:
One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType: : EntityType 'Location' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet �Locations� is based on type �Location� that has no keys defined.
¿Cómo tienen una propiedad de navegación dentro de un tipo complejo? Si elimino la propiedad de navegación del país, funciona bien.
¿Pero qué pasa con el entero 'CountryID' dentro de la clase' Location'? ¿Es posible hacer eso una restricción de clave externa? (Tengo un problema similar y no puedo hacer que funcione) –
@Isak: No, no es posible. Si desea tenerlo en la base de datos de FK, debe hacerlo directamente en la base de datos, pero EF no lo reflejará. –
El hecho de que esto no se admite se menciona directamente en Descripción de tipo complejo en MSDN: http://msdn.microsoft.com/en-us/library/bb738472.aspx –