XPO 第三方控件学习(DevExpress Persistent Object )系列---继承和多态

  某种程度上也可以说是表间关系。

             XPO的持久类支持完整的继承和多态。

             比如管理人员是一个员工,但一个员工不一定是管理人员。这个我们在以前数据库设计时可以在员工表中加一个是否管理人员的标识,或者另建一个管理人员表,再通过外键让它和员工表建立关系。

   XPO中就可以用OO的方式来描述此类关系:建一个员工类,再建一个员工类的子类:管理人员类。

Public Class Employee

    Inherits XPObject

    Public LastName As String = ""

    Public FirstName As String = ""

    <Association("ManagerEmployees")> Public Manager As Manager = Nothing

 

    Public Sub New()

    End Sub 'New

 

    Public Sub New(ByVal newLastName As String, ByVal newFirstName As String)

        LastName = newLastName

        FirstName = newFirstName

    End Sub 'New

End Class 'Employee

 _

 

Public Class Manager

    Inherits Employee

    <Association("ManagerEmployees", GetType(Employee))> _

       Public ReadOnly Property Employees() As XPCollection

        Get

            Return GetCollection("Employees")

        End Get

    End Property

 

    Public Sub New()

    End Sub 'New

 

    Public Sub New(ByVal newLastName As String, ByVal newFirstName As String)

        MyBase.New(newLastName, newFirstName)

    End Sub 'New

End Class 'Manager

注意使用了关联属性。但是这里的关联关系仅仅是表示一个管理人员所管理的下属员工(管理人员)。

 

posted on 2010-03-04 22:35  SUNJUNLIN  阅读(629)  评论(0编辑  收藏  举报

导航