Index: /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml	(revision 3961)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml	(revision 3962)
@@ -11,5 +11,5 @@
       <Column Name="Email" Modifier="Virtual" Type="System.String" CanBeNull="false" />
       <Column Name="Comment" Modifier="Virtual" Type="System.String" CanBeNull="false" />
-      <Association Name="HeuristicLabUser_HeuristicLabUserRole" Member="HeuristicLabUserRole" ThisKey="ID" OtherKey="HeuristicLabUserID" Type="HeuristicLabUserRole" />
+      <Association Name="HeuristicLabUser_HeuristicLabUserRole" Member="HeuristicLabUserRoles" Storage="_HeuristicLabUserRole" ThisKey="ID" OtherKey="HeuristicLabUserID" Type="HeuristicLabUserRole" />
     </Type>
   </Table>
@@ -20,7 +20,7 @@
       <Column Name="parentRoleID" Member="ParentRoleID" Storage="_parentRoleID" Type="System.Int64" CanBeNull="true" />
       <Column Name="IsPermission" Type="System.Boolean" CanBeNull="false" />
-      <Association Name="HeuristicLabRole_HeuristicLabUserRole" Member="HeuristicLabUserRole" ThisKey="ID" OtherKey="HeuristicLabRoleID" Type="HeuristicLabUserRole" />
-      <Association Name="HeuristicLabRole_HeuristicLabRole" Member="HeuristicLabRole2" ThisKey="ID" OtherKey="ParentRoleID" Type="HeuristicLabRole" />
-      <Association Name="HeuristicLabRole_HeuristicLabRole" Member="HeuristicLabRole1" ThisKey="ParentRoleID" OtherKey="ID" Type="HeuristicLabRole" IsForeignKey="true" />
+      <Association Name="HeuristicLabRole_HeuristicLabRole" Member="HeuristicLabRoleChilds" Storage="_HeuristicLabRole2" ThisKey="ID" OtherKey="ParentRoleID" Type="HeuristicLabRole" />
+      <Association Name="HeuristicLabRole_HeuristicLabUserRole" Member="HeuristicLabUserRoles" Storage="_HeuristicLabUserRole" ThisKey="ID" OtherKey="HeuristicLabRoleID" Type="HeuristicLabUserRole" />
+      <Association Name="HeuristicLabRole_HeuristicLabRole" Member="HeuristicLabRoleParent" Storage="_HeuristicLabRole1" ThisKey="ParentRoleID" OtherKey="ID" Type="HeuristicLabRole" IsForeignKey="true" />
     </Type>
   </Table>
Index: /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml.layout
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml.layout	(revision 3961)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.dbml.layout	(revision 3962)
@@ -28,5 +28,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(5.19495923189603 : 2.70359537760417); (5.19495923189603 : 4.31814697265625); (2.625 : 4.31814697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+    <associationConnector edgePoints="[(5.19495923189603 : 2.70359537760417); (5.19495923189603 : 4.31814697265625); (2.625 : 4.31814697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/DataClassesDataContext/HeuristicLabRole/HeuristicLabRole_HeuristicLabUserRole" />
       <nodes>
Index: /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.designer.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.designer.cs	(revision 3961)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Persistence/DataClasses.designer.cs	(revision 3962)
@@ -2,9 +2,9 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
-//     Dieser Code wurde von einem Tool generiert.
-//     Laufzeitversion:2.0.50727.4927
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.4927
 //
-//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-//     der Code erneut generiert wird.
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 //------------------------------------------------------------------------------
@@ -251,5 +251,5 @@
 		
 		[Association(Name="HeuristicLabUser_HeuristicLabUserRole", Storage="_HeuristicLabUserRole", ThisKey="ID", OtherKey="HeuristicLabUserID")]
-		public EntitySet<HeuristicLabUserRole> HeuristicLabUserRole
+		public EntitySet<HeuristicLabUserRole> HeuristicLabUserRoles
 		{
 			get
@@ -310,7 +310,7 @@
 		private bool _IsPermission;
 		
+		private EntitySet<HeuristicLabRole> _HeuristicLabRole2;
+		
 		private EntitySet<HeuristicLabUserRole> _HeuristicLabUserRole;
-		
-		private EntitySet<HeuristicLabRole> _HeuristicLabRole2;
 		
 		private EntityRef<HeuristicLabRole> _HeuristicLabRole1;
@@ -330,6 +330,6 @@
 		public HeuristicLabRole()
 		{
+			this._HeuristicLabRole2 = new EntitySet<HeuristicLabRole>(new Action<HeuristicLabRole>(this.attach_HeuristicLabRole2), new Action<HeuristicLabRole>(this.detach_HeuristicLabRole2));
 			this._HeuristicLabUserRole = new EntitySet<HeuristicLabUserRole>(new Action<HeuristicLabUserRole>(this.attach_HeuristicLabUserRole), new Action<HeuristicLabUserRole>(this.detach_HeuristicLabUserRole));
-			this._HeuristicLabRole2 = new EntitySet<HeuristicLabRole>(new Action<HeuristicLabRole>(this.attach_HeuristicLabRole2), new Action<HeuristicLabRole>(this.detach_HeuristicLabRole2));
 			this._HeuristicLabRole1 = default(EntityRef<HeuristicLabRole>);
 			OnCreated();
@@ -405,6 +405,19 @@
 		}
 		
+		[Association(Name="HeuristicLabRole_HeuristicLabRole", Storage="_HeuristicLabRole2", ThisKey="ID", OtherKey="ParentRoleID")]
+		public EntitySet<HeuristicLabRole> HeuristicLabRoleChilds
+		{
+			get
+			{
+				return this._HeuristicLabRole2;
+			}
+			set
+			{
+				this._HeuristicLabRole2.Assign(value);
+			}
+		}
+		
 		[Association(Name="HeuristicLabRole_HeuristicLabUserRole", Storage="_HeuristicLabUserRole", ThisKey="ID", OtherKey="HeuristicLabRoleID")]
-		public EntitySet<HeuristicLabUserRole> HeuristicLabUserRole
+		public EntitySet<HeuristicLabUserRole> HeuristicLabUserRoles
 		{
 			get
@@ -418,19 +431,6 @@
 		}
 		
-		[Association(Name="HeuristicLabRole_HeuristicLabRole", Storage="_HeuristicLabRole2", ThisKey="ID", OtherKey="ParentRoleID")]
-		public EntitySet<HeuristicLabRole> HeuristicLabRole2
-		{
-			get
-			{
-				return this._HeuristicLabRole2;
-			}
-			set
-			{
-				this._HeuristicLabRole2.Assign(value);
-			}
-		}
-		
 		[Association(Name="HeuristicLabRole_HeuristicLabRole", Storage="_HeuristicLabRole1", ThisKey="ParentRoleID", OtherKey="ID", IsForeignKey=true)]
-		public HeuristicLabRole HeuristicLabRole1
+		public HeuristicLabRole HeuristicLabRoleParent
 		{
 			get
@@ -448,10 +448,10 @@
 					{
 						this._HeuristicLabRole1.Entity = null;
-						previousValue.HeuristicLabRole2.Remove(this);
+						previousValue.HeuristicLabRoleChilds.Remove(this);
 					}
 					this._HeuristicLabRole1.Entity = value;
 					if ((value != null))
 					{
-						value.HeuristicLabRole2.Add(this);
+						value.HeuristicLabRoleChilds.Add(this);
 						this._parentRoleID = value.ID;
 					}
@@ -460,5 +460,5 @@
 						this._parentRoleID = default(Nullable<long>);
 					}
-					this.SendPropertyChanged("HeuristicLabRole1");
+					this.SendPropertyChanged("HeuristicLabRoleParent");
 				}
 			}
@@ -483,4 +483,16 @@
 				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
 			}
+		}
+		
+		private void attach_HeuristicLabRole2(HeuristicLabRole entity)
+		{
+			this.SendPropertyChanging();
+			entity.HeuristicLabRoleParent = this;
+		}
+		
+		private void detach_HeuristicLabRole2(HeuristicLabRole entity)
+		{
+			this.SendPropertyChanging();
+			entity.HeuristicLabRoleParent = null;
 		}
 		
@@ -495,16 +507,4 @@
 			this.SendPropertyChanging();
 			entity.HeuristicLabRole = null;
-		}
-		
-		private void attach_HeuristicLabRole2(HeuristicLabRole entity)
-		{
-			this.SendPropertyChanging();
-			entity.HeuristicLabRole1 = this;
-		}
-		
-		private void detach_HeuristicLabRole2(HeuristicLabRole entity)
-		{
-			this.SendPropertyChanging();
-			entity.HeuristicLabRole1 = null;
 		}
 	}
@@ -630,10 +630,10 @@
 					{
 						this._HeuristicLabUser.Entity = null;
-						previousValue.HeuristicLabUserRole.Remove(this);
+						previousValue.HeuristicLabUserRoles.Remove(this);
 					}
 					this._HeuristicLabUser.Entity = value;
 					if ((value != null))
 					{
-						value.HeuristicLabUserRole.Add(this);
+						value.HeuristicLabUserRoles.Add(this);
 						this._HeuristicLabUserID = value.ID;
 					}
@@ -664,10 +664,10 @@
 					{
 						this._HeuristicLabAbstractRole.Entity = null;
-						previousValue.HeuristicLabUserRole.Remove(this);
+						previousValue.HeuristicLabUserRoles.Remove(this);
 					}
 					this._HeuristicLabAbstractRole.Entity = value;
 					if ((value != null))
 					{
-						value.HeuristicLabUserRole.Add(this);
+						value.HeuristicLabUserRoles.Add(this);
 						this._HeuristicLabRoleID = value.ID;
 					}
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs	(revision 3961)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs	(revision 3962)
@@ -185,5 +185,5 @@
           // optionally delete related data
           if (deleteAllRelatedData) {
-            db.HeuristicLabUserRole.DeleteAllOnSubmit<HeuristicLabUserRole>(u.HeuristicLabUserRole);
+            db.HeuristicLabUserRole.DeleteAllOnSubmit<HeuristicLabUserRole>(u.HeuristicLabUserRoles);
           }
 
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs	(revision 3961)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs	(revision 3962)
@@ -61,5 +61,5 @@
       if (roleName != null && db.HeuristicLabRole.Count(r => r.RoleName == roleName) == 1) {
         HeuristicLabRole role = db.HeuristicLabRole.Single(r => r.RoleName == roleName);
-        foreach (HeuristicLabUserRole userRole in role.HeuristicLabUserRole) {
+        foreach (HeuristicLabUserRole userRole in role.HeuristicLabUserRoles) {
           if (userRole.HeuristicLabUser.UserName.Contains(usernameToMatch)) {
             returnValue.Add(userRole.HeuristicLabUser.UserName);
@@ -88,5 +88,5 @@
 
         Persistence.HeuristicLabUser user = context.HeuristicLabUsers.Single(u => u.UserName == username);
-        foreach (Persistence.HeuristicLabUserRole userRole in user.HeuristicLabUserRole) {
+        foreach (Persistence.HeuristicLabUserRole userRole in user.HeuristicLabUserRoles) {
           roleList.Add(userRole.HeuristicLabRole.RoleName);
         }
