Fix EntityStorage parameter binding
This commit is contained in:
		
							parent
							
								
									339dc635e5
								
							
						
					
					
						commit
						ccd824dcc3
					
				@ -152,7 +152,11 @@ internal class EntityStorage<TEntity> : IAsyncEnumerable<TEntity>, IStorage<TEnt
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		await Execute(new StorageContextArgs(operation));
 | 
							await Execute(new StorageContextArgs(operation));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return entity;
 | 
							var clone = entity.Clone();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ReturnValueBinder.Bind(operation, clone);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return clone;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	/// <summary>
 | 
						/// <summary>
 | 
				
			||||||
	/// Performs the update on the specified entity with optional concurrency callback support.
 | 
						/// Performs the update on the specified entity with optional concurrency callback support.
 | 
				
			||||||
@ -274,7 +278,7 @@ internal class EntityStorage<TEntity> : IAsyncEnumerable<TEntity>, IStorage<TEnt
 | 
				
			|||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Bind storage parameters with operation parameters.
 | 
							 * Bind storage parameters with operation parameters.
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		ReturnValueBinder.Bind(writer, args.Operation);
 | 
							ReturnValueBinder.Bind(writer.Operation, args.Operation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return recordsAffected;
 | 
							return recordsAffected;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -8,14 +8,11 @@ namespace Connected.Data.Storage
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    internal static class ReturnValueBinder
 | 
					    internal static class ReturnValueBinder
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		public static void Bind(IStorageWriter w, IStorageOperation operation)
 | 
							public static void Bind(IStorageOperation operation, object entity)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			List<PropertyInfo> properties = null;
 | 
								List<PropertyInfo> properties = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (w.Operation.Parameters is null)
 | 
								foreach (var parameter in operation.Parameters)
 | 
				
			||||||
				return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			foreach (var parameter in w.Operation.Parameters)
 | 
					 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if (parameter.Direction != ParameterDirection.ReturnValue && parameter.Direction != ParameterDirection.Output)
 | 
									if (parameter.Direction != ParameterDirection.ReturnValue && parameter.Direction != ParameterDirection.Output)
 | 
				
			||||||
					continue;
 | 
										continue;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user