350+个错误:类型“blah.blah.blah”已经包含一个定义?

4
这是什么意思?是因为我有两个包含相同数据库表的不同 .DBML 文件吗?
...
Error   343 The type 'mvc.Models.Bundle' already contains a definition for 'BundleIcon' C:\inetpub\wwwroot\Models\Assets1.designer.cs   3438    17  mvc
Error   344 The type 'mvc.Models.Bundle' already contains a definition for 'isScorm'    C:\inetpub\wwwroot\Models\Assets1.designer.cs   3459    15  mvc
Error   345 The type 'mvc.Models.Bundle' already contains a definition for 'scormPath'  C:\inetpub\wwwroot\Models\Assets1.designer.cs   3480    17  mvc
Error   346 The type 'mvc.Models.Bundle' already contains a definition for 'CompanyID'  C:\inetpub\wwwroot\Models\Assets1.designer.cs   3501    14  mvc
...
2个回答

7
是的,如果您将它们保留在同一命名空间中,这种情况就会发生。

在MVC应用程序中使用两个命名空间是否有问题?我正在使用这两个类。 - user3752281

3

好的,当我添加另一个Linq-to-SQL .dbml时,我遇到了同样的错误。

更具体的原因是,您不能在同一命名空间中引用相同表和列的2个单独的.DBML。

与数据集不同,在其中您可以有2个分离的数据集(Dataset1.xsdDataset2.xsd),其中每个都具有相同的表和相同的列,在Linq中不是这样。

DataClass1.dbml使用表MyTable,该表有一个列myColumnDataClass2.dbml也使用名称为MyTable的表,并有一个列myColumn,将失败,因为myColumn在同一命名空间内的两个designer.cs文件中都有定义。

我的解决方法:我将DataClass2.dbmlMyTable“重命名”为MyTable_2,并将myColumn重命名为myColumn_2

然后我诅咒微软,删除了DataClass2.dbml,并将我需要的第三个表与其他表一起集成到了DataClass1.dbml中(以避免此问题)。 DataClass1.dbml现在有约40个表,这使得DataClass1.designer.cs文件具有超过20,000行“自动生成”的代码。

很可爱,是吗。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接