public void RemoveRange(IEnumerable <object> entities) { foreach (var group in entities.Where(e => e != null).GroupBy(k => k.GetType())) { _ = RemoveRangeMethodInfo.MakeGenericMethod(group.Key).Invoke(this, new object[] { EnumerableCastHelper.CastToArray(group.AsEnumerable(), group.Key) }); } }
public void AddRange(IEnumerable <object> models) { foreach (var group in (models ?? throw new ArgumentNullException(nameof(models))).Where(m => m != null) .GroupBy(k => k.GetType())) { AddRangeMethodInfo.MakeGenericMethod(group.Key).Invoke(this, new object[] { EnumerableCastHelper.CastToArray(group.AsEnumerable(), group.Key) }); } }