long GetNextSequence(string sequenceType) { if (sequenceType == null) { throw new ArgumentNullException(nameof(sequenceType)); } lock (Locker){ Lock(); _sequence = GetNowSequence(sequenceType, _explicitUnitOfWork); long nextId = _sequence.NextSequence; var sequenceReleasedObject = _sequence.SequenceReleasedObjects.Where(o => o != null).ToArray().OrderBy(o => o.Sequence) .FirstOrDefault(); if (sequenceReleasedObject != null) { nextId = sequenceReleasedObject.Sequence; _explicitUnitOfWork.Delete(sequenceReleasedObject); } else { _sequence.NextSequence++; } _explicitUnitOfWork.FlushChanges(); return(nextId); } }
long GetNextSequence(XPClassInfo classInfo, string preFix) { if (classInfo == null) throw new ArgumentNullException("classInfo"); var objectByKey = _explicitUnitOfWork.GetObjectByKey(_sequenceObjectType, preFix + classInfo.FullName, true); _sequence = objectByKey != null ? (ISequenceObject)objectByKey : CreateSequenceObject(preFix + classInfo.FullName, _explicitUnitOfWork); long nextId = _sequence.NextSequence; _sequence.NextSequence++; _explicitUnitOfWork.FlushChanges(); return nextId; }
long GetNextSequence(XPClassInfo classInfo, string preFix) { if (classInfo == null) { throw new ArgumentNullException("classInfo"); } _sequence = GetNowSequence(classInfo, preFix, _explicitUnitOfWork); long nextId = _sequence.NextSequence; _sequence.NextSequence++; _explicitUnitOfWork.FlushChanges(); return(nextId); }
long GetNextSequence(XPClassInfo classInfo, string preFix) { if (classInfo == null) { throw new ArgumentNullException("classInfo"); } var objectByKey = _explicitUnitOfWork.GetObjectByKey(_sequenceObjectType, preFix + classInfo.FullName, true); _sequence = objectByKey != null ? (ISequenceObject)objectByKey : CreateSequenceObject(preFix + classInfo.FullName, _explicitUnitOfWork); long nextId = _sequence.NextSequence; _sequence.NextSequence++; _explicitUnitOfWork.FlushChanges(); return(nextId); }
long GetNextSequence(XPClassInfo classInfo, string preFix) { if (classInfo == null) throw new ArgumentNullException("classInfo"); _sequence=GetNowSequence(classInfo, preFix,_explicitUnitOfWork); long nextId = _sequence.NextSequence; _sequence.NextSequence++; _explicitUnitOfWork.FlushChanges(); return nextId; }