public ISequence CreateSequence(SequenceInfo sequenceInfo)
{
if (sequenceInfo == null)
throw new ArgumentNullException("sequenceInfo");
var sequenceName = sequenceInfo.SequenceName;
// If the Sequence or SequenceInfo tables don't exist then
// We can't add or remove native tables
if (sequenceName.Equals(SequenceTableName) ||
sequenceName.Equals(SequenceInfoTableName) ||
!Transaction.TableExists(SequenceTableName) ||
!Transaction.TableExists(SequenceInfoTableName)) {
return null;
}
try {
if (sequenceInfo.Type == SequenceType.Native)
return CreateNativeTableSequence(sequenceName);
return CreateCustomSequence(sequenceName, sequenceInfo);
} finally {
seqCache.Clear();
}
}