2014-10-16 8 views
6

Dies ist eine Folgefrage von my earlier question. Ich hatte den Eindruck, dass wenn mehr als eine Tabelle in der Datenbank vorhanden ist, der Name der DbSet Variable verwendet wird, um die Tabelle zu identifizieren.So geben Sie den Namen der Tabelle an, die von DbContext verwendet werden soll

jedoch in der verknüpften Frage war klar, dass die DbContextProducts Tisch statt Portfolio Tabelle, auch wenn der Name der Variablen Portfolio war, entschieden hat. Ich kann den Variablennamen immer noch ändern und erhalte immer noch Daten.

Also meine Frage ist, wie die Tabellen von DbContext zugeordnet werden? Ich muss einige weitere Tabellen im Projekt hinzufügen und habe keine Ahnung, wie würde ich das mit einem einzigen DbContext Objekt (oder sollte ich separate DbContext für separate Tabellen in der gleichen Datenbank verwenden) tun?

+0

Wenn Sie die Portfolio-Tabelle wollten, warum wird Ihr DBSet als 'DbSet ' anstelle von 'DbSet ' eingegeben? Es ist der _entity-Typ_, der verwendet wird, um den Tabellennamen und nicht den Variablennamen zu bestimmen. –

+0

@ChrisDunaway Das war ein Missverständnis auf meinem Ende. Ich war neugierig darauf, wie die Abbildungen von Tabellen gemacht werden. Die Antworten lieferten die Klarstellung. – noob

Antwort

10

Sie können auf das Unternehmen folgende tun:

[Table("Portfolio")] 
public class Product { /* ... */ } 

Vereinbarungsgemäß wird die Tabelle nach dem Plural des Entitäten Namen benannt.
So ein DbSet<Product> wird standardmäßig in einer Tabelle namens Products gespeichert/nachgeschlagen.

+0

Danke nochmal für die Erklärung! – noob

+0

Und wie diese Standard "Pluralisierung" zu entfernen, ohne jede Entität mit ihrem Tabellennamen zu markieren? – FindOutIslamNow

+0

@FindOutIslamNow: http://stackoverflow.com/questions/4796543/how-do-i-singularize-my-tables-in-ef-code-first- aber geben meine 2 Cent: Als Tabelle speichert z. mehr als ein Produkt ein singluar Name ist falsch IMO; -) ... – ChrFin

Verwandte Themen