【发布时间】:2010-11-12 14:45:49
【问题描述】:
不幸的是,我尝试与 LINQ to SQL 一起使用的数据库中有一个名为“System”的表。这样做的副作用是,一旦生成了 .dbml,就会出现巨大的命名空间冲突。
重命名表不是一种选择。
如果您有任何想法,我们将不胜感激!
【问题讨论】:
标签: c# asp.net sql-server linq linq-to-sql
不幸的是,我尝试与 LINQ to SQL 一起使用的数据库中有一个名为“System”的表。这样做的副作用是,一旦生成了 .dbml,就会出现巨大的命名空间冲突。
重命名表不是一种选择。
如果您有任何想法,我们将不胜感激!
【问题讨论】:
标签: c# asp.net sql-server linq linq-to-sql
在 dbml 文件中的名称之前或之后添加一个 _
【讨论】:
我认为最好的选择是在设计器/映射中重命名表,即使您无法在数据库中重命名它。
【讨论】:
我通常构建自己的 Linq to Sql 类,而不是使用 .dbml 文件。我使用的命名约定是 TableName + "Dto"。 Dto 代表数据传输对象。如果滚动您自己的 Dto 类不是一个选项,您可以简单地进入设计器,将您的 System 表 dbml 的名称编辑为 SystemDto。它仍然会正确映射到数据库对象,但您不会有名称冲突。如果您有兴趣看到一些手卷 dto,请告诉我 :)。希望这会有所帮助!
【讨论】:
您必须禁用“Pluralize New Objects”功能。
看看:
一个更简单更好的方法是在上下文中添加一个命名空间。右键单击 Linq to SQL 设计器 --> 属性 --> ContextNameSpace
【讨论】: