6

assumere i seguenti struttura della tabella:Entity Framework CTP5 (primo codice) Modeling - tabelle di ricerca

Tavoli:

**Tasks** 
taskID int PK 
taskName varchar 

**Resources** 
resourceID int PK 
resourceName varchar 

**Assignments** 
assignmentID int PK 
taskID int FK 
resourceID int FK 

La tabella assegnazioni riferisce un compito con la risorsa che viene assegnato a esso. È possibile mappare questa struttura con il generatore di modelli in modo da non dover creare una classe di assegnazione insufficiente, nascondendo parte della struttura dati sottostante?

cioè .:

public class Task 
{ 
    public int taskID { get; set; } 
    public string taskName { get; set; } 

    public virtual ICollection<Resource> resourceItems { get; set; } 
} 

public class Resource 
{ 
    public int resourceID { get; set; } 
    public string resourceName { get; set; } 
} 

Come posso utilizzare il generatore di modello per mappare le attività alle risorse senza creare una classe poco incarico?

risposta

3

Here is an article about this very thing.

Edit, io non sono un IDE di fronte a me quindi questo potrebbe non essere l'esatta "ultimo" la sintassi, ma dovrebbe iniziare:

modelBuilder.Entity<Task>().HasMany(a => a.Resources).WithMany(b => b.Tasks).Map(m => 
{ 

    m.MapLeftKey(a => a.TaskId,"taskId"); 

    m.MapRightKey(b => b.ResourceId, "resourceId"); 

    m.ToTable("Assignments"); 

}); 
+0

In quell'articolo EF sta facendo che nel SSDL & csdl. Ho bisogno di sapere come mapparlo in codice usando il generatore di modelli. Forse non sono stato chiaro nella mia domanda che sto usando l'approccio code-first in CTP5. Ho aggiornato il mio titolo. –