I have two expressions like this:
Expression<Func<T, T> exp1 = x => new T { Id = 1 , Name = "string"}
Expression<Func<T, T> exp2 = x => new T { Age = 21 }
How can I merge them?
Result:
Expression<Func<T, T> exp3 = x => new T { Id = 1 , Name = "string" , Age = 21}
T is : IEntityBaseRepository<T> where T : class, IEntityBase, new()
IEntityBase:
public interface IEntityBase
{
string Id { get; set; }
string Name { get; set; }
int Age { get; set; }
}
public virtual async Task UpdateAsync(string id, Expression<Func<T, T>> updateFactory)
{
Expression<Func<T, T>> updateFactory2 = s => new T { age = 21 };
//Expression<Func<T, T>> updateFactoryFinal = updateFactory + updateFactory2;
await _context.Set<T>().Where(w => w.Id == id).UpdateAsync(updateFactoryFinal);
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…