2014-10-16 19 views
6

這是從my earlier question開始的後續問題。我的印象是,如果數據庫中有多個表格,則使用DbSet變量的名稱來標識表格。如何指定DbContext要使用的表的名稱

然而,在鏈接的問題,很明顯的是,DbContext就是選擇Products表,而不是即使變量的名字是PortfolioPortfolio表。我仍然可以將變量名更改爲任何內容,而且我仍然可以獲取數據。

所以我的問題是如何映射表DbContext?我需要在項目中添加更多的表格,並且不知道如何使用單個DbContext對象(或者應該在單獨的表中使用單獨的DbContext)?

+0

如果你想要投資組合表,爲什麼你的DBSet輸入爲'DbSet '而不是'DbSet '?它是_entity type_用於確定表名,而不是變量名。 – 2014-10-16 13:40:08

+0

@ChrisDunaway這是我的錯誤觀念。我很好奇表格的映射是如何完成的。答案提供了澄清。 – noob 2014-10-16 13:50:26

回答

10

你可以在實體如下:

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

按照慣例,表中的實體名稱的複數而得名。
因此,默認情況下,DbSet<Product>將在名爲Products的表中存儲/查找。

+0

再次感謝您的解釋! – noob 2014-10-16 13:50:47

+0

如何刪除這個默認的「複數」而不需要用表名標記每個實體? – FindOutIslamNow 2017-03-01 11:31:25

+0

@FindOutIslamNow:http://stackoverflow.com/questions/4796543/how-do-i-singularize-my-tables-in-ef-code-first - 但給我2美分:作爲一個表存儲例如不止一個產品單一名稱是錯誤的IMO; - )... – ChrFin 2017-03-01 12:10:44

相關問題