Visual Studio 2008数据集生成问题(命名空间问题)

时间:2009-07-28 12:57:29

标签: c# visual-studio-2008 dataset

在工作中,我们在DataAccess层的一些项目中使用类型化数据集。有时我们使用部分类功能扩展它们:使用数据集上的View代码创建带有部分类声明的DataSetName.cs,您可以在其中添加代码。在这个文件中,我们还添加了TableAdapter分部类。

最近我们从VS 2005迁移到Visual Studio 2008.数据集生成器的行为在VS 2008中似乎有所不同。它删除了.cs文件中TableAdapter命名空间中的一部分:

示例:

原始代码:


namespace ClassLibrary1.Dataset.DataSet1TableAdapters  
{  
   public partial class CategoriesTableAdapter  
   {  
   }  
}

在VS 2008中迁移后:


namespace ClassLibrary1.DataSet1TableAdapters  
{  
   public partial class CategoriesTableAdapter  
   {  
   }  
}

命名空间已更改!它已被项目的根命名空间取代。

复制步骤:

  1. 创建一个类库项目。
  2. 添加名为Dataset的文件夹或项目中的任何内容。
  3. 在文件夹(DataSet1)中添加数据集。
  4. 在数据集设计器中删除一个表(我使用了Northwind的表)。
  5. 右键单击解决方案资源管理器中的数据集,然后选择“查看代码”。它将创建一个DataSet1.cs文件,其中包含数据集的部分类。
  6. 从DataSet1.Designer.cs复制表适配器的命名空间和类,并将其粘贴到DataSet1.cs中。
  7. 在数据集上运行自定义工具,它可以正常工作!
  8. 关闭解决方案
  9. 再次打开解决方案
  10. 在数据集上运行自定义工具,为tableAdapter修改名称空间,非常烦人:(
  11. 我的机器: Windows Server 2003 R2标准版SP2 Visual Studio 2008 Pro(9.0.21022.8 RTM) 还在运行XP的同事的计算机上进行了测试。

    任何人都经历过同样奇怪的行为吗? 我做错了什么? 在Visual Studio 2008中是否有新的东西可以使它像在VS 2005中那样工作?

2 个答案:

答案 0 :(得分:1)

拥有一个也是类名的命名空间会引起混淆。在这种情况下,微软显然决定修复命名空间生成错误。我建议修复你的命名空间,而不是试图找到一些解决方法,以旧的方式。

答案 1 :(得分:0)

Visual Studio 2008 SP1修复了此问题。