Domanda

È il loro modo tramite Entity Framework Codice-solo per avere un ente che ha campi da due tabelle, se entrambe le tabelle non contengono la chiave primaria?

Ecco un esempio.

public class BlogPost
{
    public int PostID { get; set; }
    public String PostBody { get; set; }
    public int UserID { get; set; }
    public string Username { get; set; }
}

public class User
{
    public int UserID { get; set; }
    public String Username { get; set; }
}

public class BlogPostConfiguration : EntityConfiguration<BlogPost>
{
    public BlogPostConfiguration()
    {
        HasKey(b => b.PostID);
    }
}

public class UserConfiguration : EntityConfiguration<User>
{
    public UserConfiguration()
    {
        HasKey(b => b.UserID);
    }
}

Voglio la proprietà Nome dell'oggetto BlogPost da mappare alla colonna nome utente della tabella utente. Posso fare la mappatura utilizzando una chiave esterna utilizzando il progettista, ma non sono sicuro di come farlo solo con il Codice. Ho provato ad utilizzare due dichiarazioni MapHierarchy nel mio oggetto di configurazione ma sembra che funziona solo se entrambe le tabelle noi la stessa chiave primaria.

È stato utile?

Soluzione

Non credo che questo è possibile con l'attuale stato di Entity Framework.

Per fare la scissione entità bisogna avere una mappatura 1-a-1 (la chiave primaria deve essere in entrambe le tabelle).

Sono stato scorretto con la mia indagatore nel presumere che, poiché è possibile aggiungere colonne da una seconda tabella nella finestra di progettazione che il codice potrà mai funzionare. Ottengo un errore molto simile quando si cerca di fare il mapping nel EDMX come faccio io quando si utilizza solo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top