Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/CharacteristicType.cs
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/CharacteristicType.cs	(revision 15973)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/CharacteristicType.cs	(revision 15973)
@@ -0,0 +1,33 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Services.OKB.DataAccess {
+  public enum CharacteristicType {
+    Bool = 0,
+    Int = 1,
+    Long = 2,
+    Float = 3,
+    Double = 4,
+    String = 5,
+    Percent = 6,
+    TimeSpan = 7
+  }
+}
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj	(revision 15973)
@@ -128,4 +128,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="CharacteristicType.cs" />
     <Compile Include="ValueNameType.cs" />
     <Compile Include="ValueNameCategory.cs" />
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml	(revision 15973)
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?><Database Name="HeuristicLab.OKB" EntityNamespace="HeuristicLab.Services.OKB.DataAccess" ContextNamespace="HeuristicLab.Services.OKB.DataAccess" Class="OKBDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
-  <Connection Mode="AppSettings" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.OKB;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.OKB.DataAccess.Properties.Settings" SettingsPropertyName="OKBConnectionString" Provider="System.Data.SqlClient" />
+  <Connection Mode="AppSettings" ConnectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.OKB" SettingsObjectName="HeuristicLab.Services.OKB.DataAccess.Properties.Settings" SettingsPropertyName="OKBConnectionString" Provider="System.Data.SqlClient" />
   <Table Name="dbo.AlgorithmClass" Member="AlgorithmClasses">
     <Type Name="AlgorithmClass">
@@ -49,4 +49,5 @@
       <Association Name="DataType_Value" Member="Values" ThisKey="Id" OtherKey="DataTypeId" Type="Value" />
       <Association Name="DataType_CharacteristicValue" Member="CharacteristicValues" ThisKey="Id" OtherKey="DataTypeId" Type="CharacteristicValue" />
+      <Association Name="DataType_SingleObjectiveSolution" Member="SingleObjectiveSolutions" ThisKey="Id" OtherKey="DataTypeId" Type="SingleObjectiveSolution" />
     </Type>
   </Table>
@@ -89,4 +90,5 @@
       <Association Name="Problem_Run" Member="Runs" ThisKey="Id" OtherKey="ProblemId" Type="Run" />
       <Association Name="Problem_CharacteristicValue" Member="CharacteristicValues" ThisKey="Id" OtherKey="ProblemId" Type="CharacteristicValue" />
+      <Association Name="Problem_SingleObjectiveSolution" Member="SingleObjectiveSolutions" ThisKey="Id" OtherKey="ProblemId" Type="SingleObjectiveSolution" />
       <Association Name="DataType_Problem" Member="DataType" ThisKey="DataTypeId" OtherKey="Id" Type="DataType" IsForeignKey="true" />
       <Association Name="Platform_Problem" Member="Platform" ThisKey="PlatformId" OtherKey="Id" Type="Platform" IsForeignKey="true" />
@@ -103,4 +105,5 @@
       <Association Name="BinaryData_Problem" Member="Problems" ThisKey="Id" OtherKey="BinaryDataId" Type="Problem" />
       <Association Name="BinaryData_Value" Member="Values" ThisKey="Id" OtherKey="BinaryDataId" Type="Value" />
+      <Association Name="BinaryData_SingleObjectiveSolution" Member="SingleObjectiveSolutions" ThisKey="Id" OtherKey="BinaryDataId" Type="SingleObjectiveSolution" />
     </Type>
   </Table>
@@ -114,4 +117,5 @@
       <Column Name="ClientId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
       <Association Name="Run_Value" Member="Values" ThisKey="Id" OtherKey="RunId" Type="Value" />
+      <Association Name="Run_SingleObjectiveSolution" Member="SingleObjectiveSolutions" ThisKey="Id" OtherKey="RunId" Type="SingleObjectiveSolution" />
       <Association Name="Algorithm_Run" Member="Algorithm" ThisKey="AlgorithmId" OtherKey="Id" Type="Algorithm" IsForeignKey="true" />
       <Association Name="Problem_Run" Member="Problem" ThisKey="ProblemId" OtherKey="Id" Type="Problem" IsForeignKey="true" />
@@ -141,5 +145,5 @@
       <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
       <Column Name="Name" Type="System.String" DbType="NVarChar(200) NOT NULL" CanBeNull="false" />
-      <Column Name="Type" Type="System.Byte" DbType="TinyInt NOT NULL" CanBeNull="false" />
+      <Column Name="Type" Type="CharacteristicType" DbType="TinyInt NOT NULL" CanBeNull="false" />
       <Association Name="Characteristic_CharacteristicValue" Member="CharacteristicValues" ThisKey="Id" OtherKey="CharacteristicId" Type="CharacteristicValue" />
     </Type>
@@ -162,3 +166,17 @@
     </Type>
   </Table>
+  <Table Name="dbo.SingleObjectiveSolution" Member="SingleObjectiveSolutions">
+    <Type Name="SingleObjectiveSolution">
+      <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+      <Column Name="ProblemId" Type="System.Int64" DbType="BigInt" CanBeNull="true" />
+      <Column Name="BinaryDataId" Type="System.Int64" DbType="BigInt" CanBeNull="true" />
+      <Column Name="RunId" Type="System.Int64" DbType="BigInt" CanBeNull="true" />
+      <Column Name="Quality" Type="System.Double" DbType="Float" CanBeNull="false" />
+      <Column Name="DataTypeId" Type="System.Int64" DbType="BigInt" CanBeNull="true" />
+      <Association Name="Problem_SingleObjectiveSolution" Member="Problem" ThisKey="ProblemId" OtherKey="Id" Type="Problem" IsForeignKey="true" />
+      <Association Name="BinaryData_SingleObjectiveSolution" Member="BinaryData" ThisKey="BinaryDataId" OtherKey="Id" Type="BinaryData" IsForeignKey="true" />
+      <Association Name="Run_SingleObjectiveSolution" Member="Run" ThisKey="RunId" OtherKey="Id" Type="Run" IsForeignKey="true" />
+      <Association Name="DataType_SingleObjectiveSolution" Member="DataType" ThisKey="DataTypeId" OtherKey="Id" Type="DataType" IsForeignKey="true" />
+    </Type>
+  </Table>
 </Database>
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml.layout
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml.layout	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml.layout	(revision 15973)
@@ -1,55 +1,55 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
-<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 15.75, 11.25" name="OKB">
+<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 15.75, 11.125" name="OKB">
   <DataContextMoniker Name="/OKBDataContext" />
   <nestedChildShapes>
-    <classShape Id="ec288562-8ef9-46b8-a2dc-a471fec7afb8" absoluteBounds="0.5, 0.5, 2, 1.3862939453125">
+    <classShape Id="ec288562-8ef9-46b8-a2dc-a471fec7afb8" absoluteBounds="0.5, 0.5, 2, 1.26050048828125">
       <DataClassMoniker Name="/OKBDataContext/AlgorithmClass" />
       <nestedChildShapes>
-        <elementListCompartment Id="fbed452c-662c-42d5-b89f-2b122b63aecc" absoluteBounds="0.51500000000000012, 0.96, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="018aceac-7bd0-4fdd-8cca-d219aa08a5b5" absoluteBounds="13.5, 0.5, 2, 1.3862939453125">
+        <elementListCompartment Id="fbed452c-662c-42d5-b89f-2b122b63aecc" absoluteBounds="0.51500000000000012, 0.96, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="018aceac-7bd0-4fdd-8cca-d219aa08a5b5" absoluteBounds="13.5, 0.5, 2, 1.26050048828125">
       <DataClassMoniker Name="/OKBDataContext/ProblemClass" />
       <nestedChildShapes>
-        <elementListCompartment Id="2958536f-012b-4eb7-8bc7-453edcda1493" absoluteBounds="13.515, 0.96, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="aa997e47-0162-4fc2-aa8d-e237c50c46fe" absoluteBounds="0.5, 2.125, 2, 1.1939925130208331">
+        <elementListCompartment Id="2958536f-012b-4eb7-8bc7-453edcda1493" absoluteBounds="13.515, 0.96, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="aa997e47-0162-4fc2-aa8d-e237c50c46fe" absoluteBounds="0.5, 2.125, 2, 1.0961531575520831">
       <DataClassMoniker Name="/OKBDataContext/AlgorithmUser" />
       <nestedChildShapes>
-        <elementListCompartment Id="f81c31a9-84c5-40b1-b817-6dccbe77227d" absoluteBounds="0.51500000000000057, 2.5850000000000009, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="8d911be4-13c4-4abd-85de-4f93f280dd50" absoluteBounds="13.5, 2.125, 2, 1.1939925130208331">
+        <elementListCompartment Id="f81c31a9-84c5-40b1-b817-6dccbe77227d" absoluteBounds="0.51500000000000057, 2.5850000000000009, 1.9700000000000002, 0.53615315755208326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="8d911be4-13c4-4abd-85de-4f93f280dd50" absoluteBounds="13.5, 2.125, 2, 1.0961531575520831">
       <DataClassMoniker Name="/OKBDataContext/ProblemUser" />
       <nestedChildShapes>
-        <elementListCompartment Id="bdf4bd9d-405f-4582-99ff-036459c86748" absoluteBounds="13.515, 2.5850000000000009, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="42a9e8c0-3168-43f0-a31f-54d1558bd4c2" absoluteBounds="7, 0.5, 2, 1.3862939453125">
+        <elementListCompartment Id="bdf4bd9d-405f-4582-99ff-036459c86748" absoluteBounds="13.515, 2.5850000000000009, 1.9700000000000002, 0.53615315755208326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="42a9e8c0-3168-43f0-a31f-54d1558bd4c2" absoluteBounds="7, 0.5, 2, 1.26050048828125">
       <DataClassMoniker Name="/OKBDataContext/Platform" />
       <nestedChildShapes>
-        <elementListCompartment Id="83ab4fa2-80aa-4c36-9596-bc4d9a0c6daf" absoluteBounds="7.0150000000000006, 0.96, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="34f5a12b-f109-4606-baf8-6ddfde7c1b34" absoluteBounds="7, 2.125, 2, 1.3862939453125">
+        <elementListCompartment Id="83ab4fa2-80aa-4c36-9596-bc4d9a0c6daf" absoluteBounds="7.0150000000000006, 0.96, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="34f5a12b-f109-4606-baf8-6ddfde7c1b34" absoluteBounds="7, 2.125, 2, 1.26050048828125">
       <DataClassMoniker Name="/OKBDataContext/DataType" />
       <nestedChildShapes>
-        <elementListCompartment Id="1dacac40-e283-48e9-a98d-dddbc6b4fd48" absoluteBounds="7.0150000000000006, 2.585, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="c75911bf-ae6d-421c-9219-e027c3059390" absoluteBounds="3.5, 4, 2, 1.5785953776041666">
+        <elementListCompartment Id="1dacac40-e283-48e9-a98d-dddbc6b4fd48" absoluteBounds="7.0150000000000006, 2.585, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="c75911bf-ae6d-421c-9219-e027c3059390" absoluteBounds="3.5, 4, 2, 1.4248478190104166">
       <DataClassMoniker Name="/OKBDataContext/ValueName" />
       <nestedChildShapes>
-        <elementListCompartment Id="5aadda7d-ee09-475a-a2d1-e153615911b4" absoluteBounds="3.5149999999999997, 4.46, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="be37de9e-465a-4d06-9dd6-3c3f7f1f07fa" absoluteBounds="2.75, 0.5, 2, 2.1554996744791666">
+        <elementListCompartment Id="5aadda7d-ee09-475a-a2d1-e153615911b4" absoluteBounds="3.5149999999999997, 4.46, 1.9700000000000002, 0.86484781901041663" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="be37de9e-465a-4d06-9dd6-3c3f7f1f07fa" absoluteBounds="2.75, 0.5, 2, 1.9178898111979166">
       <DataClassMoniker Name="/OKBDataContext/Algorithm" />
       <nestedChildShapes>
-        <elementListCompartment Id="5d0e5084-c74f-469d-bb56-da81ce2ce8d4" absoluteBounds="2.7650000000000006, 0.96, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <associationConnector edgePoints="[(2.75 : 2.39024983723958); (2.5 : 2.39024983723958)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+        <elementListCompartment Id="5d0e5084-c74f-469d-bb56-da81ce2ce8d4" absoluteBounds="2.7650000000000006, 0.96, 1.9700000000000002, 1.3578898111979165" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(2.75 : 2.21452838459845); (2.62712 : 2.21452838459845); (2.62712 : 2.32099938104692); (2.5 : 2.32099938104692)]" fixedFrom="Caller" fixedTo="Caller">
       <AssociationMoniker Name="/OKBDataContext/Algorithm/Algorithm_AlgorithmUser" />
       <nodes>
@@ -58,5 +58,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(2.5 : 1.19314697265625); (2.75 : 1.19314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(2.5 : 0.916972452799479); (2.75 : 0.916972452799479)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/AlgorithmClass/AlgorithmClass_Algorithm" />
       <nodes>
@@ -65,5 +65,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(7 : 2.39024983723958); (4.75 : 2.39024983723958)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(7 : 2.90169564973958); (3.75 : 2.90169564973958); (3.75 : 2.41788981119792)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/DataType/DataType_Algorithm" />
       <nodes>
@@ -72,5 +72,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(7 : 1.19314697265625); (4.75 : 1.19314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(7 : 1.13025024414063); (4.75 : 1.13025024414063)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/Platform/Platform_Algorithm" />
       <nodes>
@@ -79,8 +79,8 @@
       </nodes>
     </associationConnector>
-    <classShape Id="f197afc9-8f2b-4dae-b87e-43c2c87796bb" absoluteBounds="11.25, 0.5, 2, 2.1554996744791666">
+    <classShape Id="f197afc9-8f2b-4dae-b87e-43c2c87796bb" absoluteBounds="11.25, 0.5, 2, 1.9178898111979166">
       <DataClassMoniker Name="/OKBDataContext/Problem" />
       <nestedChildShapes>
-        <elementListCompartment Id="9feb3034-0748-47df-aa82-41b7c3e8cdbd" absoluteBounds="11.265, 0.96, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="9feb3034-0748-47df-aa82-41b7c3e8cdbd" absoluteBounds="11.265, 0.96, 1.9700000000000002, 1.3578898111979165" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -113,11 +113,11 @@
       </nodes>
     </associationConnector>
-    <classShape Id="c2a69525-596c-4c58-a8cb-cb8c616f52d1" absoluteBounds="7, 9.625, 2, 1.3862939453125">
+    <classShape Id="c2a69525-596c-4c58-a8cb-cb8c616f52d1" absoluteBounds="7, 9.625, 2, 1.2605004882812505">
       <DataClassMoniker Name="/OKBDataContext/BinaryData" />
       <nestedChildShapes>
-        <elementListCompartment Id="d8ba4b42-b034-4f4d-88c6-ccc998db2567" absoluteBounds="7.0150000000000006, 10.085, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <associationConnector edgePoints="[(7 : 10.3181469726562); (2.98333686713063 : 10.3181469726562); (2.98333686713063 : 2.65549967447917)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+        <elementListCompartment Id="d8ba4b42-b034-4f4d-88c6-ccc998db2567" absoluteBounds="7.0150000000000006, 10.085, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(7 : 10.2552502441406); (3.09375 : 10.2552502441406); (3.09375 : 2.41788981119792)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/BinaryData/BinaryData_Algorithm" />
       <nodes>
@@ -126,5 +126,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(9 : 10.3181469726562); (13.0131477507419 : 10.3181469726562); (13.0131477507419 : 2.65549967447917)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(9 : 9.94921858039234); (12.9483480024624 : 9.94921858039234); (12.9483480024624 : 2.41788981119792)]" fixedFrom="Caller" fixedTo="Caller">
       <AssociationMoniker Name="/OKBDataContext/BinaryData/BinaryData_Problem" />
       <nodes>
@@ -133,11 +133,11 @@
       </nodes>
     </associationConnector>
-    <classShape Id="65934fe9-4206-4d20-971b-1afacf645311" absoluteBounds="5.75, 7.25, 2, 1.9631982421875005">
+    <classShape Id="65934fe9-4206-4d20-971b-1afacf645311" absoluteBounds="5.75, 7.25, 2, 1.7535424804687505">
       <DataClassMoniker Name="/OKBDataContext/Run" />
       <nestedChildShapes>
-        <elementListCompartment Id="14f0104d-03c2-4aec-9a4d-faeaaa1d8947" absoluteBounds="5.7650000000000006, 7.7100000000000009, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <associationConnector edgePoints="[(3.24167093356531 : 2.65549967447917); (3.24167093356531 : 8.23159912109375); (5.75 : 8.23159912109375)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+        <elementListCompartment Id="14f0104d-03c2-4aec-9a4d-faeaaa1d8947" absoluteBounds="5.7650000000000006, 7.7100000000000009, 1.9700000000000002, 1.19354248046875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(3.2968775 : 2.41788981119792); (3.2968775 : 8.12677124023438); (5.75 : 8.12677124023438)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/Algorithm/Algorithm_Run" />
       <nodes>
@@ -146,5 +146,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(12.7565713753709 : 2.65549967447917); (12.7565713753709 : 8.23159912109375); (8.13243692318721 : 8.23159912109375 : JumpStart); (7.96577025652055 : 8.23159912109375 : JumpEnd); (7.75 : 8.23159912109375)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+    <associationConnector edgePoints="[(12.7603838147602 : 2.41788981119792); (12.7603838147602 : 7.49340240799753); (8.13243692318721 : 7.49340240799753 : JumpStart); (7.96577025652055 : 7.49340240799753 : JumpEnd); (7.75 : 7.49340240799753)]" fixedFrom="Caller" fixedTo="Caller">
       <AssociationMoniker Name="/OKBDataContext/Problem/Problem_Run" />
       <nodes>
@@ -153,11 +153,11 @@
       </nodes>
     </associationConnector>
-    <classShape Id="7d592fcd-d7a9-4ad0-a69f-9d29b97d9995" absoluteBounds="5.75, 4, 2, 2.9247054036458331">
+    <classShape Id="7d592fcd-d7a9-4ad0-a69f-9d29b97d9995" absoluteBounds="5.75, 4, 2, 2.5752791341145826">
       <DataClassMoniker Name="/OKBDataContext/Value" />
       <nestedChildShapes>
-        <elementListCompartment Id="89ad14d6-7946-43fe-af7c-59ce9fbe1d96" absoluteBounds="5.7650000000000006, 4.46, 1.9700000000000002, 2.364705403645833" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <associationConnector edgePoints="[(8.04910358985388 : 9.625); (8.04910358985388 : 5.45496831242535); (7.75 : 5.45496831242535)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
+        <elementListCompartment Id="89ad14d6-7946-43fe-af7c-59ce9fbe1d96" absoluteBounds="5.7650000000000006, 4.46, 1.9700000000000002, 2.015279134114583" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(8.04910358985388 : 9.625); (8.04910358985388 : 5.45496831242535); (7.75 : 5.45496831242535)]" manuallyRouted="true" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/BinaryData/BinaryData_Value" />
       <nodes>
@@ -173,5 +173,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(6.72310950465391 : 7.25); (6.72027766059957 : 6.92470540364583)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(6.72310950465391 : 7.25); (6.71723573886188 : 6.57527913411458)]" manuallyRouted="true" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/Run/Run_Value" />
       <nodes>
@@ -187,14 +187,14 @@
       </nodes>
     </associationConnector>
-    <classShape Id="7fb3c838-3d13-4b45-9912-1b5733a61110" absoluteBounds="10.5, 4, 2, 1.3862939453125">
+    <classShape Id="7fb3c838-3d13-4b45-9912-1b5733a61110" absoluteBounds="10.5, 4, 2, 1.2605004882812496">
       <DataClassMoniker Name="/OKBDataContext/Characteristic" />
       <nestedChildShapes>
-        <elementListCompartment Id="861faa11-366e-46d5-8fcb-1cef297d1920" absoluteBounds="10.515, 4.46, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="78f1d8c1-299d-46f8-90b5-e79d3904a0e6" absoluteBounds="8.25, 4, 2, 2.7324039713541666">
+        <elementListCompartment Id="861faa11-366e-46d5-8fcb-1cef297d1920" absoluteBounds="10.515, 4.46, 1.9700000000000002, 0.70050048828125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="78f1d8c1-299d-46f8-90b5-e79d3904a0e6" absoluteBounds="8.25, 4, 2, 2.4109318033854166">
       <DataClassMoniker Name="/OKBDataContext/CharacteristicValue" />
       <nestedChildShapes>
-        <elementListCompartment Id="c197bfb3-c90d-42e4-91a8-17775b4cc933" absoluteBounds="8.265, 4.46, 1.9700000000000002, 2.1724039713541665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="c197bfb3-c90d-42e4-91a8-17775b4cc933" absoluteBounds="8.265, 4.46, 1.9700000000000002, 1.8509318033854165" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -206,5 +206,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(8.68784173221247 : 3.5112939453125); (8.68784173221247 : 4)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(8.43436125277367 : 3.38550048828125); (8.43436125277367 : 4)]" fixedFrom="Caller" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/DataType/DataType_CharacteristicValue" />
       <nodes>
@@ -213,9 +213,43 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(11.8118610455891 : 2.65549967447917); (11.8118610455891 : 3.0432292702094); (9.62689159819655 : 3.0432292702094); (9.62689159819655 : 4)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(11.8118610455891 : 2.41788981119792); (11.8118610455891 : 3.0432292702094); (9.62689159819655 : 3.0432292702094); (9.62689159819655 : 4)]" manuallyRouted="true" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/OKBDataContext/Problem/Problem_CharacteristicValue" />
       <nodes>
         <classShapeMoniker Id="f197afc9-8f2b-4dae-b87e-43c2c87796bb" />
         <classShapeMoniker Id="78f1d8c1-299d-46f8-90b5-e79d3904a0e6" />
+      </nodes>
+    </associationConnector>
+    <classShape Id="fe9ab60f-6e76-4363-ac1d-3e5711f402cd" absoluteBounds="13.5, 3.75, 2, 1.7535424804687496">
+      <DataClassMoniker Name="/OKBDataContext/SingleObjectiveSolution" />
+      <nestedChildShapes>
+        <elementListCompartment Id="a283b96a-8121-4153-9c1c-8ebbbbe99f2c" absoluteBounds="13.515, 4.2100000000000009, 1.9700000000000002, 1.19354248046875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(13.1361579720891 : 2.41788981119792); (13.1361579720891 : 3.45); (13.8726600840611 : 3.45); (13.8726600840611 : 3.75)]" fixedFrom="Caller" fixedTo="Caller">
+      <AssociationMoniker Name="/OKBDataContext/Problem/Problem_SingleObjectiveSolution" />
+      <nodes>
+        <classShapeMoniker Id="f197afc9-8f2b-4dae-b87e-43c2c87796bb" />
+        <classShapeMoniker Id="fe9ab60f-6e76-4363-ac1d-3e5711f402cd" />
+      </nodes>
+    </associationConnector>
+    <associationConnector edgePoints="[(9 : 10.3033576284925); (14.510357295819 : 10.3033576284925); (14.510357295819 : 5.50354248046875)]" fixedFrom="Caller" fixedTo="Caller">
+      <AssociationMoniker Name="/OKBDataContext/BinaryData/BinaryData_SingleObjectiveSolution" />
+      <nodes>
+        <classShapeMoniker Id="c2a69525-596c-4c58-a8cb-cb8c616f52d1" />
+        <classShapeMoniker Id="fe9ab60f-6e76-4363-ac1d-3e5711f402cd" />
+      </nodes>
+    </associationConnector>
+    <associationConnector edgePoints="[(7.75 : 8.27972494423314); (7.96577025652055 : 8.27972494423314 : JumpStart); (8.13243692318721 : 8.27972494423314 : JumpEnd); (12.865014669129 : 8.27972494423314 : JumpStart); (13.0316813357957 : 8.27972494423314 : JumpEnd); (13.9739261479095 : 8.27972494423314); (13.9739261479095 : 5.50354248046875)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+      <AssociationMoniker Name="/OKBDataContext/Run/Run_SingleObjectiveSolution" />
+      <nodes>
+        <classShapeMoniker Id="65934fe9-4206-4d20-971b-1afacf645311" />
+        <classShapeMoniker Id="fe9ab60f-6e76-4363-ac1d-3e5711f402cd" />
+      </nodes>
+    </associationConnector>
+    <associationConnector edgePoints="[(8.77843010499566 : 3.38550048828125); (8.77843010499566 : 3.77510427976719); (9.54355826486322 : 3.77510427976719 : JumpStart); (9.71022493152988 : 3.77510427976719 : JumpEnd); (12.6770504814268 : 3.77510427976719 : JumpStart); (12.8437171480935 : 3.77510427976719 : JumpEnd); (12.865014669129 : 3.77510427976719 : JumpStart); (13.0316813357957 : 3.77510427976719 : JumpEnd); (13.2521618458221 : 3.77510427976719); (13.2521618458221 : 4.08899946616712); (13.5 : 4.08899946616712)]" manuallyRouted="true" fixedFrom="Caller" fixedTo="Caller">
+      <AssociationMoniker Name="/OKBDataContext/DataType/DataType_SingleObjectiveSolution" />
+      <nodes>
+        <classShapeMoniker Id="34f5a12b-f109-4606-baf8-6ddfde7c1b34" />
+        <classShapeMoniker Id="fe9ab60f-6e76-4363-ac1d-3e5711f402cd" />
       </nodes>
     </associationConnector>
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.designer.cs
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.designer.cs	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.designer.cs	(revision 15973)
@@ -3,5 +3,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.34014
+//     Runtime Version:4.0.30319.34209
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -73,4 +73,7 @@
     partial void UpdateCharacteristicValue(CharacteristicValue instance);
     partial void DeleteCharacteristicValue(CharacteristicValue instance);
+    partial void InsertSingleObjectiveSolution(SingleObjectiveSolution instance);
+    partial void UpdateSingleObjectiveSolution(SingleObjectiveSolution instance);
+    partial void DeleteSingleObjectiveSolution(SingleObjectiveSolution instance);
     #endregion
 		
@@ -214,4 +217,12 @@
 			{
 				return this.GetTable<CharacteristicValue>();
+			}
+		}
+		
+		public System.Data.Linq.Table<SingleObjectiveSolution> SingleObjectiveSolutions
+		{
+			get
+			{
+				return this.GetTable<SingleObjectiveSolution>();
 			}
 		}
@@ -934,4 +945,6 @@
 		private EntitySet<CharacteristicValue> _CharacteristicValues;
 		
+		private EntitySet<SingleObjectiveSolution> _SingleObjectiveSolutions;
+		
     #region Extensibility Method Definitions
     partial void OnLoaded();
@@ -952,4 +965,5 @@
 			this._Values = new EntitySet<Value>(new Action<Value>(this.attach_Values), new Action<Value>(this.detach_Values));
 			this._CharacteristicValues = new EntitySet<CharacteristicValue>(new Action<CharacteristicValue>(this.attach_CharacteristicValues), new Action<CharacteristicValue>(this.detach_CharacteristicValues));
+			this._SingleObjectiveSolutions = new EntitySet<SingleObjectiveSolution>(new Action<SingleObjectiveSolution>(this.attach_SingleObjectiveSolutions), new Action<SingleObjectiveSolution>(this.detach_SingleObjectiveSolutions));
 			OnCreated();
 		}
@@ -1067,4 +1081,17 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="DataType_SingleObjectiveSolution", Storage="_SingleObjectiveSolutions", ThisKey="Id", OtherKey="DataTypeId")]
+		public EntitySet<SingleObjectiveSolution> SingleObjectiveSolutions
+		{
+			get
+			{
+				return this._SingleObjectiveSolutions;
+			}
+			set
+			{
+				this._SingleObjectiveSolutions.Assign(value);
+			}
+		}
+		
 		public event PropertyChangingEventHandler PropertyChanging;
 		
@@ -1130,4 +1157,16 @@
 		
 		private void detach_CharacteristicValues(CharacteristicValue entity)
+		{
+			this.SendPropertyChanging();
+			entity.DataType = null;
+		}
+		
+		private void attach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
+		{
+			this.SendPropertyChanging();
+			entity.DataType = this;
+		}
+		
+		private void detach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
 		{
 			this.SendPropertyChanging();
@@ -1750,4 +1789,6 @@
 		private EntitySet<CharacteristicValue> _CharacteristicValues;
 		
+		private EntitySet<SingleObjectiveSolution> _SingleObjectiveSolutions;
+		
 		private EntityRef<DataType> _DataType;
 		
@@ -1783,4 +1824,5 @@
 			this._Runs = new EntitySet<Run>(new Action<Run>(this.attach_Runs), new Action<Run>(this.detach_Runs));
 			this._CharacteristicValues = new EntitySet<CharacteristicValue>(new Action<CharacteristicValue>(this.attach_CharacteristicValues), new Action<CharacteristicValue>(this.detach_CharacteristicValues));
+			this._SingleObjectiveSolutions = new EntitySet<SingleObjectiveSolution>(new Action<SingleObjectiveSolution>(this.attach_SingleObjectiveSolutions), new Action<SingleObjectiveSolution>(this.detach_SingleObjectiveSolutions));
 			this._DataType = default(EntityRef<DataType>);
 			this._Platform = default(EntityRef<Platform>);
@@ -1985,4 +2027,17 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Problem_SingleObjectiveSolution", Storage="_SingleObjectiveSolutions", ThisKey="Id", OtherKey="ProblemId")]
+		public EntitySet<SingleObjectiveSolution> SingleObjectiveSolutions
+		{
+			get
+			{
+				return this._SingleObjectiveSolutions;
+			}
+			set
+			{
+				this._SingleObjectiveSolutions.Assign(value);
+			}
+		}
+		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="DataType_Problem", Storage="_DataType", ThisKey="DataTypeId", OtherKey="Id", IsForeignKey=true)]
 		public DataType DataType
@@ -2172,4 +2227,16 @@
 		
 		private void detach_CharacteristicValues(CharacteristicValue entity)
+		{
+			this.SendPropertyChanging();
+			entity.Problem = null;
+		}
+		
+		private void attach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
+		{
+			this.SendPropertyChanging();
+			entity.Problem = this;
+		}
+		
+		private void detach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
 		{
 			this.SendPropertyChanging();
@@ -2195,4 +2262,6 @@
 		
 		private EntitySet<Value> _Values;
+		
+		private EntitySet<SingleObjectiveSolution> _SingleObjectiveSolutions;
 		
     #region Extensibility Method Definitions
@@ -2213,4 +2282,5 @@
 			this._Problems = new EntitySet<Problem>(new Action<Problem>(this.attach_Problems), new Action<Problem>(this.detach_Problems));
 			this._Values = new EntitySet<Value>(new Action<Value>(this.attach_Values), new Action<Value>(this.detach_Values));
+			this._SingleObjectiveSolutions = new EntitySet<SingleObjectiveSolution>(new Action<SingleObjectiveSolution>(this.attach_SingleObjectiveSolutions), new Action<SingleObjectiveSolution>(this.detach_SingleObjectiveSolutions));
 			OnCreated();
 		}
@@ -2315,4 +2385,17 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="BinaryData_SingleObjectiveSolution", Storage="_SingleObjectiveSolutions", ThisKey="Id", OtherKey="BinaryDataId")]
+		public EntitySet<SingleObjectiveSolution> SingleObjectiveSolutions
+		{
+			get
+			{
+				return this._SingleObjectiveSolutions;
+			}
+			set
+			{
+				this._SingleObjectiveSolutions.Assign(value);
+			}
+		}
+		
 		public event PropertyChangingEventHandler PropertyChanging;
 		
@@ -2366,4 +2449,16 @@
 		
 		private void detach_Values(Value entity)
+		{
+			this.SendPropertyChanging();
+			entity.BinaryData = null;
+		}
+		
+		private void attach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
+		{
+			this.SendPropertyChanging();
+			entity.BinaryData = this;
+		}
+		
+		private void detach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
 		{
 			this.SendPropertyChanging();
@@ -2391,4 +2486,6 @@
 		
 		private EntitySet<Value> _Values;
+		
+		private EntitySet<SingleObjectiveSolution> _SingleObjectiveSolutions;
 		
 		private EntityRef<Algorithm> _Algorithm;
@@ -2417,4 +2514,5 @@
 		{
 			this._Values = new EntitySet<Value>(new Action<Value>(this.attach_Values), new Action<Value>(this.detach_Values));
+			this._SingleObjectiveSolutions = new EntitySet<SingleObjectiveSolution>(new Action<SingleObjectiveSolution>(this.attach_SingleObjectiveSolutions), new Action<SingleObjectiveSolution>(this.detach_SingleObjectiveSolutions));
 			this._Algorithm = default(EntityRef<Algorithm>);
 			this._Problem = default(EntityRef<Problem>);
@@ -2563,4 +2661,17 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Run_SingleObjectiveSolution", Storage="_SingleObjectiveSolutions", ThisKey="Id", OtherKey="RunId")]
+		public EntitySet<SingleObjectiveSolution> SingleObjectiveSolutions
+		{
+			get
+			{
+				return this._SingleObjectiveSolutions;
+			}
+			set
+			{
+				this._SingleObjectiveSolutions.Assign(value);
+			}
+		}
+		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Algorithm_Run", Storage="_Algorithm", ThisKey="AlgorithmId", OtherKey="Id", IsForeignKey=true)]
 		public Algorithm Algorithm
@@ -2658,4 +2769,16 @@
 		
 		private void detach_Values(Value entity)
+		{
+			this.SendPropertyChanging();
+			entity.Run = null;
+		}
+		
+		private void attach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
+		{
+			this.SendPropertyChanging();
+			entity.Run = this;
+		}
+		
+		private void detach_SingleObjectiveSolutions(SingleObjectiveSolution entity)
 		{
 			this.SendPropertyChanging();
@@ -3140,5 +3263,5 @@
 		private string _Name;
 		
-		private byte _Type;
+		private CharacteristicType _Type;
 		
 		private EntitySet<CharacteristicValue> _CharacteristicValues;
@@ -3152,5 +3275,5 @@
     partial void OnNameChanging(string value);
     partial void OnNameChanged();
-    partial void OnTypeChanging(byte value);
+    partial void OnTypeChanging(CharacteristicType value);
     partial void OnTypeChanged();
     #endregion
@@ -3202,6 +3325,6 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Type", DbType="TinyInt NOT NULL")]
-		public byte Type
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Type", DbType="TinyInt NOT NULL", CanBeNull=false)]
+		public CharacteristicType Type
 		{
 			get
@@ -3668,4 +3791,350 @@
 		}
 	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.SingleObjectiveSolution")]
+	public partial class SingleObjectiveSolution : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _Id;
+		
+		private System.Nullable<long> _ProblemId;
+		
+		private System.Nullable<long> _BinaryDataId;
+		
+		private System.Nullable<long> _RunId;
+		
+		private double _Quality;
+		
+		private System.Nullable<long> _DataTypeId;
+		
+		private EntityRef<Problem> _Problem;
+		
+		private EntityRef<BinaryData> _BinaryData;
+		
+		private EntityRef<Run> _Run;
+		
+		private EntityRef<DataType> _DataType;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnIdChanging(long value);
+    partial void OnIdChanged();
+    partial void OnProblemIdChanging(System.Nullable<long> value);
+    partial void OnProblemIdChanged();
+    partial void OnBinaryDataIdChanging(System.Nullable<long> value);
+    partial void OnBinaryDataIdChanged();
+    partial void OnRunIdChanging(System.Nullable<long> value);
+    partial void OnRunIdChanged();
+    partial void OnQualityChanging(double value);
+    partial void OnQualityChanged();
+    partial void OnDataTypeIdChanging(System.Nullable<long> value);
+    partial void OnDataTypeIdChanged();
+    #endregion
+		
+		public SingleObjectiveSolution()
+		{
+			this._Problem = default(EntityRef<Problem>);
+			this._BinaryData = default(EntityRef<BinaryData>);
+			this._Run = default(EntityRef<Run>);
+			this._DataType = default(EntityRef<DataType>);
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", AutoSync=AutoSync.OnInsert, DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
+		public long Id
+		{
+			get
+			{
+				return this._Id;
+			}
+			set
+			{
+				if ((this._Id != value))
+				{
+					this.OnIdChanging(value);
+					this.SendPropertyChanging();
+					this._Id = value;
+					this.SendPropertyChanged("Id");
+					this.OnIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProblemId", DbType="BigInt")]
+		public System.Nullable<long> ProblemId
+		{
+			get
+			{
+				return this._ProblemId;
+			}
+			set
+			{
+				if ((this._ProblemId != value))
+				{
+					if (this._Problem.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnProblemIdChanging(value);
+					this.SendPropertyChanging();
+					this._ProblemId = value;
+					this.SendPropertyChanged("ProblemId");
+					this.OnProblemIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BinaryDataId", DbType="BigInt")]
+		public System.Nullable<long> BinaryDataId
+		{
+			get
+			{
+				return this._BinaryDataId;
+			}
+			set
+			{
+				if ((this._BinaryDataId != value))
+				{
+					if (this._BinaryData.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnBinaryDataIdChanging(value);
+					this.SendPropertyChanging();
+					this._BinaryDataId = value;
+					this.SendPropertyChanged("BinaryDataId");
+					this.OnBinaryDataIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RunId", DbType="BigInt")]
+		public System.Nullable<long> RunId
+		{
+			get
+			{
+				return this._RunId;
+			}
+			set
+			{
+				if ((this._RunId != value))
+				{
+					if (this._Run.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnRunIdChanging(value);
+					this.SendPropertyChanging();
+					this._RunId = value;
+					this.SendPropertyChanged("RunId");
+					this.OnRunIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Quality", DbType="Float")]
+		public double Quality
+		{
+			get
+			{
+				return this._Quality;
+			}
+			set
+			{
+				if ((this._Quality != value))
+				{
+					this.OnQualityChanging(value);
+					this.SendPropertyChanging();
+					this._Quality = value;
+					this.SendPropertyChanged("Quality");
+					this.OnQualityChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DataTypeId", DbType="BigInt")]
+		public System.Nullable<long> DataTypeId
+		{
+			get
+			{
+				return this._DataTypeId;
+			}
+			set
+			{
+				if ((this._DataTypeId != value))
+				{
+					if (this._DataType.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnDataTypeIdChanging(value);
+					this.SendPropertyChanging();
+					this._DataTypeId = value;
+					this.SendPropertyChanged("DataTypeId");
+					this.OnDataTypeIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Problem_SingleObjectiveSolution", Storage="_Problem", ThisKey="ProblemId", OtherKey="Id", IsForeignKey=true)]
+		public Problem Problem
+		{
+			get
+			{
+				return this._Problem.Entity;
+			}
+			set
+			{
+				Problem previousValue = this._Problem.Entity;
+				if (((previousValue != value) 
+							|| (this._Problem.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._Problem.Entity = null;
+						previousValue.SingleObjectiveSolutions.Remove(this);
+					}
+					this._Problem.Entity = value;
+					if ((value != null))
+					{
+						value.SingleObjectiveSolutions.Add(this);
+						this._ProblemId = value.Id;
+					}
+					else
+					{
+						this._ProblemId = default(Nullable<long>);
+					}
+					this.SendPropertyChanged("Problem");
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="BinaryData_SingleObjectiveSolution", Storage="_BinaryData", ThisKey="BinaryDataId", OtherKey="Id", IsForeignKey=true)]
+		public BinaryData BinaryData
+		{
+			get
+			{
+				return this._BinaryData.Entity;
+			}
+			set
+			{
+				BinaryData previousValue = this._BinaryData.Entity;
+				if (((previousValue != value) 
+							|| (this._BinaryData.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._BinaryData.Entity = null;
+						previousValue.SingleObjectiveSolutions.Remove(this);
+					}
+					this._BinaryData.Entity = value;
+					if ((value != null))
+					{
+						value.SingleObjectiveSolutions.Add(this);
+						this._BinaryDataId = value.Id;
+					}
+					else
+					{
+						this._BinaryDataId = default(Nullable<long>);
+					}
+					this.SendPropertyChanged("BinaryData");
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Run_SingleObjectiveSolution", Storage="_Run", ThisKey="RunId", OtherKey="Id", IsForeignKey=true)]
+		public Run Run
+		{
+			get
+			{
+				return this._Run.Entity;
+			}
+			set
+			{
+				Run previousValue = this._Run.Entity;
+				if (((previousValue != value) 
+							|| (this._Run.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._Run.Entity = null;
+						previousValue.SingleObjectiveSolutions.Remove(this);
+					}
+					this._Run.Entity = value;
+					if ((value != null))
+					{
+						value.SingleObjectiveSolutions.Add(this);
+						this._RunId = value.Id;
+					}
+					else
+					{
+						this._RunId = default(Nullable<long>);
+					}
+					this.SendPropertyChanged("Run");
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="DataType_SingleObjectiveSolution", Storage="_DataType", ThisKey="DataTypeId", OtherKey="Id", IsForeignKey=true)]
+		public DataType DataType
+		{
+			get
+			{
+				return this._DataType.Entity;
+			}
+			set
+			{
+				DataType previousValue = this._DataType.Entity;
+				if (((previousValue != value) 
+							|| (this._DataType.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._DataType.Entity = null;
+						previousValue.SingleObjectiveSolutions.Remove(this);
+					}
+					this._DataType.Entity = value;
+					if ((value != null))
+					{
+						value.SingleObjectiveSolutions.Add(this);
+						this._DataTypeId = value.Id;
+					}
+					else
+					{
+						this._DataTypeId = default(Nullable<long>);
+					}
+					this.SendPropertyChanged("DataType");
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
 }
 #pragma warning restore 1591
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/Properties/AssemblyInfo.cs.frame	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/Properties/AssemblyInfo.cs.frame	(revision 15973)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -32,5 +32,5 @@
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2015 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2018 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
@@ -55,3 +55,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.13.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.15.$WCREV$")]
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameCategory.cs
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameCategory.cs	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameCategory.cs	(revision 15973)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameType.cs
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameType.cs	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/ValueNameType.cs	(revision 15973)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/app.config
===================================================================
--- branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/app.config	(revision 15651)
+++ branches/2522_RefactorPluginInfrastructure/HeuristicLab.Services.OKB.DataAccess/3.3/app.config	(revision 15973)
@@ -1,8 +1,10 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
-  <configSections>
-  </configSections>
   <connectionStrings>
-    <add name="HeuristicLab.Services.OKB.DataAccess.Properties.Settings.OKBConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.OKB" providerName="System.Data.SqlClient"/>
+    <add name="HeuristicLab.Services.OKB.DataAccess.Properties.Settings.OKBConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.OKB" />
   </connectionStrings>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
+
+  <startup>
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
+  </startup>
+</configuration>
