2010-01-07 132 views
1

例如,我的表名是「診斷」。當我將它帶入我的LINQ to SQL模型時,它試圖找出如何將它複數化,並錯誤地認爲實體名稱應該是「Diagnosi」,集合名稱應該是「Diagnosis」,這可能會令人困惑。是否可以更改LINQ表的複數名稱?

當我在屬性中將實體名稱更改爲「診斷」時,它不會更改集名稱,所以現在它們都是「診斷」,這更加令人困惑。

理想情況下,我想控制集名稱並將其更改爲「診斷」。我會爲了LINQ而盲目應用它的多元化,並提出諸如「診斷」之類的東西。有任何想法嗎?

+1

http://stackoverflow.com/questions/1467614/why-does-linq-to-sql-classes-change-the-name-of-a-table-when-making-a-class – 2010-01-07 15:01:09

回答

0

我不知道的一個好辦法做到這一點,但這裏有一些想法:

  • 如果您不必往返你型號太多,則可以覆蓋類名在生成的XML中(右鍵單擊DBML,在XML編輯器中編輯)。
  • 你可以嘗試將這個類放到一個單獨的模型中,並手動爲它運行SQLMetal,而不是從VS設計器(當它從設計器保存模型時隱式運行)運行SQLMetal。我想你可以用命令行選項關閉複數。
  • 可以從錯誤命名類派生,並給它正確的名稱,從開發
1

隱藏的問題,據我所知,您可以更改表的名稱。

打開設計器並單擊要更改的表格。再次點擊表名稱,它應該允許您重命名它。這將不會重命名實際的數據庫表,據我所知,只是您的實體。

如果右鍵單擊表並選擇「屬性」,則相同的信息將顯示在屬性窗口中。您應該能夠更改映射到您的表的實體的名稱。

+0

是的,表可以重命名,但LINQ使用算法來計算出集合名稱。如果您的物理表名稱是「作者」,則LINQ會嘗試通過命名實體「作者」並命名集合「作者」來提供幫助。在「診斷」的情況下,它錯誤地刪除了「s」,認爲這是「Diagnosi」的複數形式。當我將表格重新命名爲「診斷」時,算法仍然調用收集「診斷」。我想要控制集合名稱。 – gfrizzle 2010-01-08 16:33:51

+0

您可以嘗試手動更改名稱。 :) – 2010-01-08 16:59:28

相關問題