il mio modello:EF-Code primo tipo complesso con una proprietà di navigazione
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; }
}
Quando si genera il database, ottengo:
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.
Come faccio ad avere una proprietà di navigazione all'interno di un tipo complesso? Se rimuovo la proprietà di navigazione del Paese, funziona correttamente.
Ma per quanto riguarda l'intero 'CountryID' nella classe' Location'? È possibile renderlo un vincolo di chiave esterna? (Ho un problema simile e non riesco a farlo funzionare) –
@Isak: No, non è possibile. Se vuoi avere FK nel database devi farlo direttamente nel database ma EF non lo rifletterà. –
Il fatto che questo non sia supportato viene menzionato direttamente nella descrizione del tipo Complesso su MSDN: http://msdn.microsoft.com/en-us/library/bb738472.aspx –