2015-09-10 1 views
0

Dans EF 7 (bêta 6) J'utilise code premier et je l'ai fait ce code:Entity Framework 7 relation question

public class User { 
    // Primary key 
    public int Id {get;set;} 
    // Some attributes 
    public string FirstName {get; set;} 
    public string LastName {get; set;} 
    // Foreign keys 
    public int CityOfBirthId {get;set;} 
    public int CityHomeId {get;set;} 
    // Navigation methods 
    [ForeignKey("CityOfBirthId")] 
    public virtual City CityOfBirth {get;set;} 
    [ForeignKey("CityHomeId")] 
    public virtual City CityHome {get;set;} 
} 

public class City { 
    // Primary key 
    public int Id {get;set;} 
    // Attributes 
    public string Name {get;set;} 
    // Navigation methods 
    [InverseProperty("CityOfBirth")] 
    public virtual ICollection<User> UsersBorn {get;set;} 
    [InverseProperty("CityHome")] 
    public virtual ICollection<User> UsersHome {get;set;} 
} 

J'ai aussi ajouté ce code dans mon ApplicationDBContext

public DbSet<User> Users {get;set;} 
public DbSet<City> Cities {get;set;} 

J'ai quelques problèmes avec l'outil de migration. Avec juste sur la relation par entité (par exemple j'écris juste la relation CityHome) cela fonctionne, mais avec deux relations (comme le code ci-dessus) l'outil de migration ne crée pas de relations. Dans les tableaux, j'obtiens seulement des attributs et CityOfBirthId et CityHomeId ne sont que des attributs int, c'est-à-dire des clés étrangères.

+0

Avec seulement un travail, mais lorsque vous essayez à la fois, à la fois le travail de doesnt? Peut-être un étrange comportement de l'Entité, ne voulant pas remorquer la clé étrangère pour relier la même table ... –

Répondre