Fixed GetByPrimaryKey with only primaryKeyValue throwing error because of null-key
This commit is contained in:
		
							parent
							
								
									3a0af04b1c
								
							
						
					
					
						commit
						5da5d455b9
					
				@ -87,10 +87,13 @@ namespace eu.railduction.netcore.dll.Database_Attribute_System
 | 
			
		||||
        /// <param name="queryExecutor">Function to handle query-calls - Has to return Dictionary[attributeName, attributeValue]</param>
 | 
			
		||||
        public static T GetByPrimaryKey<T>(Type classType, object primaryKeyValue, Func<string, List<Dictionary<string, object>>> queryExecutor) where T : new()
 | 
			
		||||
        {
 | 
			
		||||
            Dictionary<string, object> primaryKeyData = new Dictionary<string, object>() { };
 | 
			
		||||
            primaryKeyData.Add(null, primaryKeyValue);
 | 
			
		||||
            // Read dbObject-attribute
 | 
			
		||||
            DbObject dbObject = ClassAction.Init(classType);
 | 
			
		||||
 | 
			
		||||
            return GetByPrimaryKey<T>(classType, primaryKeyData, queryExecutor);
 | 
			
		||||
            if (dbObject.primaryKeyAttributes.Count < 1) throw new InvalidOperationException($"No primaryKey found in '{classType.Name}'");
 | 
			
		||||
            if (dbObject.primaryKeyAttributes.Count > 1) throw new InvalidOperationException($"This 'GetByPrimaryKey' method only supports 1 primaryKey ('{dbObject.primaryKeyAttributes.Count}' found in '{classType.Name}')");
 | 
			
		||||
 | 
			
		||||
            return GetByPrimaryKey<T>(classType, dbObject.primaryKeyAttributes[0]._attributeName, primaryKeyValue, queryExecutor);
 | 
			
		||||
        }
 | 
			
		||||
        public static T GetByPrimaryKey<T>(Type classType, string primaryKeyName, object primaryKeyValue, Func<string, List<Dictionary<string, object>>> queryExecutor) where T : new()
 | 
			
		||||
        {
 | 
			
		||||
@ -107,6 +110,8 @@ namespace eu.railduction.netcore.dll.Database_Attribute_System
 | 
			
		||||
            // Read dbObject-attribute
 | 
			
		||||
            DbObject dbObject = ClassAction.Init(classType);
 | 
			
		||||
 | 
			
		||||
            if (dbObject.primaryKeyAttributes.Count < 1) throw new InvalidOperationException($"No primaryKey found in '{classType.Name}'");
 | 
			
		||||
 | 
			
		||||
            // iterate thru them to check and fill object
 | 
			
		||||
            foreach (DbPrimaryKey primaryKeyAtt in dbObject.primaryKeyAttributes)
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user