📄 root.vb
字号:
<Serializable()> _
Public Class Root
Inherits BusinessBase
Private mData As String = ""
Private mChildren As Children = Children.NewChildren
Public Property Data() As String
Get
Return mData
End Get
Set(ByVal Value As String)
If mData <> Value Then
mData = Value
MarkDirty()
End If
End Set
End Property
Public ReadOnly Property Children() As Children
Get
Return mChildren
End Get
End Property
Public Overrides ReadOnly Property IsDirty() As Boolean
Get
Return MyBase.IsDirty OrElse mChildren.IsDirty
End Get
End Property
Public Overloads Overrides Function Equals(ByVal obj As Object) As Boolean
If obj Is Nothing OrElse Not TypeOf obj Is Root Then
Return False
End If
Return Data = CType(obj, Root).Data
End Function
<Serializable()> _
Private Class Criteria
Public Data As String
Public Sub New()
Data = "<new>"
End Sub
Public Sub New(ByVal Data As String)
Me.Data = Data
End Sub
End Class
Public Shared Function NewRoot() As Root
Dim crit As Criteria = New Criteria
Dim result As Object = DataPortal.Create(crit)
Return DirectCast(result, Root)
End Function
Public Shared Function GetRoot(ByVal Data As String) As Root
Return DirectCast(DataPortal.Fetch(New Criteria(Data)), Root)
End Function
Public Shared Sub DeleteRoot(ByVal Data As String)
DataPortal.Delete(New Criteria(Data))
End Sub
Private Sub New()
' prevent direct creation
End Sub
Protected Overrides Sub DataPortal_Create(ByVal Criteria As Object)
Dim crit As Criteria = DirectCast(Criteria, Criteria)
mData = crit.Data
Session.Add("Root", "Created")
End Sub
Protected Overrides Sub DataPortal_Fetch(ByVal Criteria As Object)
Dim crit As Criteria = DirectCast(Criteria, Criteria)
mData = crit.Data
MarkOld()
Session.Add("Root", "Fetched")
End Sub
Protected Overrides Sub DataPortal_Update()
Session.Add("clientcontext", ApplicationContext.ClientContext.Item("clientcontext"))
Session.Add("globalcontext", ApplicationContext.GlobalContext.Item("globalcontext"))
ApplicationContext.GlobalContext.Remove("globalcontext")
ApplicationContext.GlobalContext.Item("globalcontext") = "new global value"
If IsDeleted Then
' we would delete here
Session.Add("Root", "Deleted")
MarkNew()
Else
If IsNew Then
' we would insert here
Session.Add("Root", "Inserted")
Else
' we would update here
Session.Add("Root", "Updated")
End If
mChildren.Update(Nothing)
MarkOld()
End If
End Sub
Protected Overrides Sub DataPortal_Delete(ByVal Criteria As Object)
' we would delete here
Session.Add("Root", "Deleted")
End Sub
Protected Overrides Sub Deserialized()
MyBase.Deserialized()
Session.Add("Deserialized", "root Deserialized")
End Sub
Protected Overrides Sub Serialized()
MyBase.Serialized()
Session.Add("Serialized", "root Serialized")
End Sub
Protected Overrides Sub Serializing()
MyBase.Serializing()
Session.Add("Serializing", "root Serializing")
End Sub
Protected Overrides Sub DataPortal_OnDataPortalInvoke(ByVal e As DataPortalEventArgs)
Session("dpinvoke") = ApplicationContext.GlobalContext("global")
End Sub
Protected Overrides Sub DataPortal_OnDataPortalInvokeComplete(ByVal e As DataPortalEventArgs)
Session("dpinvokecomplete") = ApplicationContext.GlobalContext("global")
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -