Evaluations

Evaluations need to retrieve the actual object instance to be evaluated. That is why they do not work on a server without persistent classes:

Client.cs: GetPilotsEvaluation
01private static void GetPilotsEvaluation() 02 { 03 Console.WriteLine("Retrieving Pilot objects: Evaluation"); 04 IObjectContainer oc = Db4oFactory.OpenClient("localhost", 0xdb40, "db4o", "db4o"); 05 try 06 { 07 IQuery query = oc.Query(); 08 09 query.Constrain(typeof(Pilot)); 10 query.Constrain(new EvenPointsEvaluation()); 11 IObjectSet result = query.Execute(); 12 ListResult(result); 13 } 14 finally 15 { 16 oc.Close(); 17 } 18 }

Client.vb: GetPilotsEvaluation
01Private Shared Sub GetPilotsEvaluation() 02 Console.WriteLine("Retrieving Pilot objects: Evaluation") 03 Dim oc As IObjectContainer = Db4oFactory.OpenClient("localhost", &HDB40, "db4o", "db4o") 04 Try 05 Dim query As IQuery = oc.Query 06 query.Constrain(GetType(Pilot)) 07 query.Constrain(New EvenPointsEvaluation) 08 Dim result As IObjectSet = query.Execute 09 ListResult(result) 10 Finally 11 oc.Close() 12 End Try 13 End Sub
Client.vb: EvenPointsEvaluation
1Private Class EvenPointsEvaluation 2 Implements IEvaluation 3 4 Public Sub Evaluate(ByVal candidate As ICandidate) Implements IEvaluation.Evaluate 5 Dim pilot As Pilot = CType(candidate.GetObject, Pilot) 6 candidate.Include(pilot.Points Mod 2 = 0) 7 End Sub 8 End Class