2014-10-16 12 views
6

Bu, my earlier question numaralı telefondan bir izleme sorudur. Veritabanında birden fazla tablo varsa, tabloyu tanımlamak için DbSet değişkeninin adının kullanılacağı izlenimi uyandırıyordum. DbContext tarafından kullanılacak tablonun adı nasıl belirlenir

Ancak bağlantılı sözkonusu DbContext Products tablo yerine değişkenin adı Portfolio bile Portfolio tablo seçiyordu açıktı. Değişken ismini hala bir şeyle değiştirebilirim ve hala veri alıyorum.

Sorunuz, tabloların DbContext ile nasıl eşleştirildiğidir? Projeye birkaç tane daha tablo eklemem gerekiyor ve bunu tek bir DbContext nesnesini kullanarak nasıl yapabilirim (veya aynı veritabanında ayrı Tablolar için ayrı DbContext kullanmalıyım)?

+0

Portföy tablosunu isterseniz, DBSet'iniz DbSet 'yerine 'DbSet ' olarak yazılmıştır? Değişken adı değil, tablo adını belirlemek için kullanılan _entity type_. –

+0

@ChrisDunaway Bu benim bir yanlış anlama oldu. Tabloların haritalarının nasıl yapıldığını merak ettim. Cevaplar açıklama sağladı. – noob

cevap

10

Sen varlık üzerinde aşağıdakileri yapabilirsiniz:

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

Geleneksel olarak masa kişiler adının çoğul almıştır.
DbSet<Product>DbSet<Product> varsayılan olarak Products isimli bir tabloda saklanacaktır.

+0

Açıklama için tekrar teşekkürler! – noob

+0

Ve bu varsayılan "çoğullaştırma" tablo adı ile her varlık işaretlemek gerek kalmadan nasıl kaldırılır? – FindOutIslamNow

+0

@FindOutIslamNow: http://stackoverflow.com/questions/4796543/how-do-i-singularize-my-tables-in-ef-code-first - ama 2 sentimi vermek için: Bir masa depoları ör. Birden fazla ürün bir singluar adı yanlış IMO; -) ... – ChrFin