public override int Add(T model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (model.Id != 0) { throw new ArgumentOutOfRangeException(nameof(model)); } model.Id = _sequenceProvider.Next <T>(); OnAddOrUpdate(model); return(base.Add(model)); }