扩展DataSet类不起作用

时间:2011-05-10 19:47:04

标签: .net partial-classes dataset-designer

我使用数据集设计器创建了一个数据集。我的一个表名为Users,因此有一个名为UsersDataTable的类。在这个类中有一些属性,即Connection。所以我创建了一个Partial Class UsersDataTable,但设计器代码隐藏文件中的UsersDataTable类中的所有例程,属性或变量都不可见。

我只是尝试扩展类以添加我自己的例程,但利用设计器生成的类的连接和强类型。我已经尝试创建自己的部分类并测试它们,看看我是否遇到了其他类的问题而我没有。只有这些数据集设计器生成的类才能访问部分类的另一半中的项目。

我在.Net 4工作。我可能做错了什么?

2 个答案:

答案 0 :(得分:1)

所有“部分”类必须声明为这样才能使这种技术起作用,我猜测Visual Studio DataSet设计器不会生成部分类:

http://msdn.microsoft.com/en-us/library/wa80x488(v=VS.100).aspx

您可能需要继承设计器生成的类。


编辑:刚看了一些VS2010生成的DataSet类,它们确实是部分的,所以假设您使用的是.NET 4,那么您的部分也应该是部分的。我会进一步调查。


进一步编辑:

好的,因为设计器将* DataTable类创建为继承自DataSet的类中的嵌套类,所以您可能需要在分部类中执行相同的操作:

public partial class UsersData
{
    public partial class UsersDataTable
    {
        public string Foo { get; set; }
    }
}

这似乎对我有用。

答案 1 :(得分:0)

似乎我刚刚使用错误的标识符扩展了我的课程:

命名空间内有NamespacePartial Public Class。因此我的代码是:

Partial Public Class myData
    Partial Public Class UsersTableAdapter
        Public Function DoSomething() As String
            Return "Testing..."
        End Function
    End Class
End Class

错了......我需要的是:

Namespace myDataTableAdapters
    Partial Public Class UsersTableAdapter
        Public Function DoSomething() As String
            Return "Testing..."
        End Function
    End Class
End Namespace