C# 名为';系统&x27;

C# 名为';系统&x27;,c#,asp.net,sql-server,linq,linq-to-sql,C#,Asp.net,Sql Server,Linq,Linq To Sql,我遇到了一个不幸的问题,我试图与LINQtoSQL一起使用的数据库中有一个名为“System”的表。这样做的副作用是,一旦生成.dbml,就会出现巨大的命名空间冲突 重命名表不是一个选项 如果您有任何想法,我们将不胜感激 在dbml文件中的名称之前或之后添加一个uu我认为最好的选择是在设计器/映射中重命名该表,即使您不能在DB中重命名它。我通常构造自己的Linq to Sql类,而不是使用.dbml文件。我使用的命名约定是TableName+“Dto”。Dto代表数据传输对象。如果不选择滚动自己

我遇到了一个不幸的问题,我试图与LINQtoSQL一起使用的数据库中有一个名为“System”的表。这样做的副作用是,一旦生成.dbml,就会出现巨大的命名空间冲突

重命名表不是一个选项


如果您有任何想法,我们将不胜感激

在dbml文件中的名称之前或之后添加一个uu

我认为最好的选择是在设计器/映射中重命名该表,即使您不能在DB中重命名它。

我通常构造自己的Linq to Sql类,而不是使用.dbml文件。我使用的命名约定是TableName+“Dto”。Dto代表数据传输对象。如果不选择滚动自己的Dto类,则只需进入设计器,将系统表dbml的名称编辑为SystemDto即可。它仍然会正确地映射到数据库对象,但不会有名称冲突。如果你有兴趣看一些手卷dto,让我知道:)。希望这有帮助

您必须禁用“新对象多元化”功能

看看:


一种更简单、更好的方法就是在上下文中添加名称空间。右键单击Linq to SQL设计器-->属性-->上下文命名空间

谢谢。我很害怕。通过DBML更改表映射名称只需大量手动操作。我正试图避免这种情况。哦,好吧,我想我将开始…添加名称空间很容易,并且解决了这个问题。谢谢。事实上,这就是我最后要做的,这是迄今为止最简单的解决办法。非常感谢。没有问题,我自己也有同样的问题:)