2010-01-07 129 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

相关问题