This topic applies to .NET version only
There are different ways to prevent fields persistence in .NET:1public static void ConfigureTransient() 2
{ 3
Db4oFactory.Configure().MarkTransient("Db4objects.Db4odoc.SelectivePersistence.FieldTransient"); 4
}
1Public Shared Sub ConfigureTransient() 2
Db4oFactory.Configure().MarkTransient("Db4objects.Db4odoc.SelectivePersistence.FieldTransient") 3
End Sub
Both methods will give you equal results:
01/* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com */ 02
using System; 03
04
namespace Db4objects.Db4odoc.SelectivePersistence 05
{ 06
public class Test 07
{ 08
[Db4objects.Db4o.Transient] 09
string _transientField; 10
string _persistentField; 11
12
public Test(string transientField, string persistentField) 13
{ 14
_transientField = transientField; 15
_persistentField = persistentField; 16
} 17
18
public override String ToString() 19
{ 20
return "Test: persistent: " + _persistentField + ", transient: " + _transientField ; 21
} 22
} 23
}
01' Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com 02
Imports System 03
Imports Db4objects.Db4o 04
05
Namespace Db4objects.Db4odoc.SelectivePersistence 06
Public Class Test 07
<Transient()> Dim _transientField As String 08
Dim _persistentField As String 09
10
Public Sub New(ByVal transientField As String, ByVal persistentField As String) 11
_transientField = transientField 12
_persistentField = persistentField 13
End Sub 14
15
Public Overrides Function ToString() As String 16
Return "Test: persistent: " + _persistentField + ", transient: " + _transientField 17
End Function 18
End Class 19
End Namespace
01/* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com */ 02
using System; 03
04
namespace Db4objects.Db4odoc.SelectivePersistence 05
{ 06
[AttributeUsage(AttributeTargets.Field)] 07
public class FieldTransient: Attribute 08
{ 09
} 10
}
1' Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com 2
Imports System 3
4
Namespace Db4objects.Db4odoc.SelectivePersistence 5
<AttributeUsage(AttributeTargets.Field)> _ 6
Public Class FieldTransient 7
Inherits Attribute 8
End Class 9
End Namespace
01/* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com */ 02
using System; 03
04
namespace Db4objects.Db4odoc.SelectivePersistence 05
{ 06
public class TestCusomized 07
{ 08
[Db4objects.Db4odoc.SelectivePersistence.FieldTransient] 09
string _transientField; 10
string _persistentField; 11
12
public TestCusomized(string transientField, string persistentField) 13
{ 14
_transientField = transientField; 15
_persistentField = persistentField; 16
} 17
18
public override String ToString() 19
{ 20
return "Customized test: persistent: " + _persistentField + ", transient: " + _transientField ; 21
} 22
} 23
}
01' Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com 02
Imports System 03
04
Namespace Db4objects.Db4odoc.SelectivePersistence 05
Public Class TestCusomized 06
<Db4objects.Db4odoc.SelectivePersistence.FieldTransient()> Dim _transientField As String 07
Dim _persistentField As String 08
09
Public Sub New(ByVal transientField As String, ByVal persistentField As String) 10
_transientField = transientField 11
_persistentField = persistentField 12
End Sub 13
14
Public Overrides Function ToString() As String 15
Return "Customized test: persistent: " + _persistentField + ", transient: " + _transientField 16
End Function 17
End Class 18
End Namespace
Let's now check the results:
01public static void SaveObjects() 02
{ 03
File.Delete(YapFileName); 04
IObjectContainer oc = Db4oFactory.OpenFile(YapFileName); 05
try 06
{ 07
Test test = new Test("Transient string","Persistent string"); 08
oc.Set(test); 09
TestCusomized testc = new TestCusomized("Transient string","Persistent string"); 10
oc.Set(testc); 11
} 12
finally 13
{ 14
oc.Close(); 15
} 16
}
01Public Shared Sub SaveObjects() 02
File.Delete(YapFileName) 03
Dim oc As IObjectContainer = Db4oFactory.OpenFile(YapFileName) 04
Try 05
Dim test As Test = New Test("Transient string", "Persistent string") 06
oc.Set(test) 07
Dim testc As TestCusomized = New TestCusomized("Transient string", "Persistent string") 08
oc.Set(testc) 09
Finally 10
oc.Close() 11
End Try 12
End Sub
01public static void RetrieveObjects() 02
{ 03
IObjectContainer oc = Db4oFactory.OpenFile(YapFileName); 04
try 05
{ 06
IQuery query = oc.Query(); 07
query.Constrain(typeof(object)); 08
IList result = query.Execute(); 09
ListResult(result); 10
} 11
finally 12
{ 13
oc.Close(); 14
} 15
}
01Public Shared Sub RetrieveObjects() 02
Dim oc As IObjectContainer = Db4oFactory.OpenFile(YapFileName) 03
Try 04
Dim query As IQuery = oc.Query() 05
query.Constrain(GetType(Object)) 06
Dim result As IList = query.Execute() 07
ListResult(result) 08
Finally 09
oc.Close() 10
End Try 11
End Sub