<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:lastBlockDepth="2" MadCap:lastHeight="120" MadCap:lastWidth="624" MadCap:disableMasterStylesheet="true" MadCap:tocPath="Basics Operations & Concepts|Update Concept|Transparent Persistence|Transparent Persistence Pitfalls" MadCap:InPreviewMode="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" MadCap:PathToHelpSystem="../../../../../" MadCap:HelpSystemFileName="index.xml" MadCap:SearchType="Stem"> <head><title>Car </title> <script type="text/javascript">/* <![CDATA[ */ window.onload = function(){ var pathToFlash = $('html').attr('MadCap:PathToHelpSystem') + 'Content/Resources/Code/ZeroClipboard.swf'; ZeroClipboard.setMoviePath(pathToFlash); function bindToClipBord(element,content){ var clip = new ZeroClipboard.Client(); clip.setText(content); clip.glue(element); }; if(location.protocol==='file:'){ $('.copylink-marker').remove(); } else{ $('.copylink-marker').each(function(){ var text = $(this).parent().parent().children('.prettyprint').html(); $(this).hover(function(){ bindToClipBord(this,text); }, function(){}); }); } prettyPrint(); }; /* ]]> */</script> <link href="../../../../SkinSupport/MadCap.css" rel="stylesheet" /> <link href="../../../../Resources/Stylesheets/OnlineStyle.css" rel="stylesheet" /> <script src="../../../../SkinSupport/MadCapAll.js"> </script> <script src="../../../../Resources/Code/prettify.js"> </script> <script src="../../../../Resources/Code/lang-vb.js"> </script> <script src="../../../../Resources/Code/jquery.min.js"> </script> <script src="../../../../Resources/Code/ZeroClipboard.js"> </script> </head> <body> <p class="MCWebHelpFramesetLink" style="display: none;"><a href="../../../../../index_CSH.html#basics/update_concept/transparent_persistence/transparent_persistence/car.htm" style="">Open topic with navigation</a> </p> <div class="MCBreadcrumbsBox"><span class="MCBreadcrumbsPrefix">You are here: </span><a class="MCBreadcrumbsLink" href="../../../../basics.htm">Basics Operations & Concepts</a><span class="MCBreadcrumbsDivider"> > </span><a class="MCBreadcrumbsLink" href="../../../update_concept.htm">Update Concept</a><span class="MCBreadcrumbsDivider"> > </span><a class="MCBreadcrumbsLink" href="../../transparent_persistence.htm">Transparent Persistence</a><span class="MCBreadcrumbsDivider"> > </span><span class="MCBreadcrumbs">Car</span> </div> <p> <script type="text/javascript">/*<![CDATA[*/document.write('<a href="' + location.href +'">'); document.write("Direct Link"); document.write('</a>');/*]]>*/</script> </p> <p> </p> <h1>Car</h1> <p MadCap:conditions="Global.Primary:java" /> <p MadCap:conditions="Primary..NET,Primary.c#,Primary.All languages"> <pre class="prettyprint" xml:space="preserve">Car.cs /** Copyright (C) 2004 - 2008 Versant Inc. http://www.db4o.com */ using System; using Db4objects.Db4o.<span class="MCTextPopup"><a href="javascript:void(0);" class="MCTextPopupSpot" onclick="FMCTextPopup( event, this ); return false;">TA<img style="border: none;margin-left: 5px;" src="../../../../SkinSupport/ExpandingClosed.gif" MadCap:altsrc="../../../../SkinSupport/ExpandingOpen.gif" class="MCExpandingIcon" onload="if ( typeof( FMCPreloadImage ) == 'function' ) { FMCPreloadImage( '../../../../SkinSupport/ExpandingOpen.gif' ); }" /></a><span class="MCTextPopupBody" style="display: none; ">Transparent Activation</span></span>; using Db4objects.Db4o.<span class="MCPopup"><a href="javascript:void(0);" class="MCPopupSpot" onclick="FMCPopup( event, this ); return false;" MadCap:src="../../../activation.htm">Activation<img style="border: none;margin-left: 5px;" src="../../../../SkinSupport/ExpandingClosed.gif" MadCap:altsrc="../../../../SkinSupport/ExpandingOpen.gif" class="MCExpandingIcon" onload="if ( typeof( FMCPreloadImage ) == 'function' ) { FMCPreloadImage( '../../../../SkinSupport/ExpandingOpen.gif' ); }" /></a></span>; namespace Db4objects.Db4odoc.<span class="MCTextPopup"><a href="javascript:void(0);" class="MCTextPopupSpot" onclick="FMCTextPopup( event, this ); return false;">TP<img style="border: none;margin-left: 5px;" src="../../../../SkinSupport/ExpandingClosed.gif" MadCap:altsrc="../../../../SkinSupport/ExpandingOpen.gif" class="MCExpandingIcon" onload="if ( typeof( FMCPreloadImage ) == 'function' ) { FMCPreloadImage( '../../../../SkinSupport/ExpandingOpen.gif' ); }" /></a><span class="MCTextPopupBody" style="display: none; ">Transparent Persistence</span></span>.Rollback { public class Car : IActivatable { private string _model; private Pilot _pilot; /**//*activator registered for this class*/ [System.NonSerialized] public IActivator _activator; public Car(string model, Pilot pilot) { _model = model; _pilot = pilot; } // end Car /**//*Bind the class to the specified object container, create the activator*/ public void Bind(IActivator activator) { if (_activator == activator) { return; } if (activator != null && null != _activator) { throw new System.InvalidOperationException(); } _activator = activator; } // end Bind public void Activate(ActivationPurpose purpose) { if (_activator == null) return; _activator.Activate(purpose); } // end Activate public string Model { get { Activate(ActivationPurpose.Read); return _model; } set { Activate(ActivationPurpose.Write); _model = value; } } public Pilot Pilot { get { Activate(ActivationPurpose.Read); return _pilot; } set { Activate(ActivationPurpose.Write); _pilot = value; } } public void ChangePilot(String name, int id) { _pilot.Name = name; _pilot.Id.Change(id); } override public string ToString() { Activate(ActivationPurpose.Read); return string.Format("{0}[{1}]", _model, _pilot); } // end ToString } }</pre> </p> <p MadCap:conditions="Global.Primary:cs" /> <p MadCap:conditions="Primary..NET,Primary.VB.NET,Primary.All languages"> <pre class="prettyprint lang-vb" xml:space="preserve">Car.vb ' Copyright (C) 2004 - 2008 Versant Inc. http://www.db4o.com Imports System Imports Db4objects.Db4o Imports Db4objects.Db4o.TA Imports Db4objects.Db4o.Activation Namespace Db4objects.Db4odoc.TP.Rollback Public Class Car Implements IActivatable Private _model As String Private _pilot As Pilot 'activator registered for this class <Transient()> _ Public _activator As IActivator Public Sub New(ByVal model As String, ByVal pilot As Pilot) _model = model _pilot = pilot End Sub ' end Car 'Bind the class to the specified object container, create the activator Public Sub Bind(ByVal activator As IActivator) Implements IActivatable.Bind If _activator Is activator Then Return End If If activator IsNot Nothing AndAlso _activator IsNot Nothing Then Throw New System.InvalidOperationException() End If _activator = activator End Sub ' end Bind Public Sub Activate(ByVal purpose As ActivationPurpose) _ Implements IActivatable.Activate If _activator Is Nothing Then Return End If _activator.Activate(purpose) End Sub ' end Activate Public Property Model() As String Get Activate(ActivationPurpose.Read) Return _model End Get Set(ByVal value As String) Activate(ActivationPurpose.Write) _model = value End Set End Property Public Property Pilot() As Pilot Get Activate(ActivationPurpose.Read) Return _pilot End Get Set(ByVal value As Pilot) Activate(ActivationPurpose.Write) _pilot = value End Set End Property Public Sub ChangePilot(ByVal name As String, ByVal id As Integer) _pilot.Name = name _pilot.Id.Change(id) End Sub Public Overloads Overrides Function ToString() As String Activate(ActivationPurpose.Read) Return String.Format("{0}[{1}]", _model, _pilot) End Function ' end ToString End Class End Namespace</pre> </p> <p MadCap:conditions="Global.Primary:vb" /> <p MadCap:conditions="Primary.Online">Download example code:</p> <p MadCap:conditions="Primary.Online"> <MadCap:conditionalText MadCap:conditions="Primary..NET,Primary.VB.NET,Primary.All languages"><a href="rollbackvb.zip">VB.NET </a> </MadCap:conditionalText> <MadCap:conditionalText MadCap:conditions="Primary..NET,Primary.c#,Primary.All languages"><a href="rollbackcs.zip">c# </a> </MadCap:conditionalText> </p> <script type="text/javascript" src="../../../../SkinSupport/MadCapBodyEnd.js"> </script> </body> </html>