350多个错误:'blah.blah.blah'类型已包含定义?

时间:2009-09-15 14:56:34

标签: asp.net-mvc linq-to-sql

这是什么意思。是因为我有两个不同的.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 个答案:

答案 0 :(得分:7)

是的,如果你将它们保存在同一名称空间中,就会发生这种情况。

答案 1 :(得分:2)

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

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

与数据集不同,在数据集中,您可以使用2个单独的数据集( Dataset1.xsd Dataset2.xsd ),并使用相同的表并且相同的列,在Linq中不是这样。

DataClass1.dbml ,表格 MyTable ,列 myColumn DataClass2.dbml ,表格也名称<列> myColumn 的strong> MyTable 将失败,因为 myColumn 在同一命名空间中的两个designer.cs文件中定义。

我的解决方法:我将' DataClass2.dbml的 MyTable 重命名为 MyTable_2 ,将 myColumn 重命名为 myColumn_2

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

可爱,呃。