Example #1
0
 public static string GetSequencePrefix(IDataLayer dataLayer)
 {
     if (dataLayer == null)
     {
         throw new ArgumentNullException("dataLayer");
     }
     lock (SyncRoot) {
         if (dataLayerForCachedServerPrefix /*.Target*/ != dataLayer)
         {
             using (Session session = new Session(dataLayer)) {
                 XpoServerId sid = session.GetObjectByKey <XpoServerId>(0);
                 if (sid == null)
                 {
                     // we can throw exception here instead of creating random prefix
                     sid = new XpoServerId(session);
                     sid.SequencePrefix = XpoDefault.NewGuid().ToString();
                     try {
                         sid.Save();
                     }
                     catch {
                         sid = session.GetObjectByKey <XpoServerId>(0, true);
                         if (sid == null)
                         {
                             throw;
                         }
                     }
                 }
                 cachedSequencePrefix           = sid.SequencePrefix;
                 dataLayerForCachedServerPrefix = dataLayer;
                 // dataLayerForCachedServerPrefix.Target = dataLayer; <<< if WeakReference
             }
         }
         return(cachedSequencePrefix);
     }
 }
Example #2
0
 protected override void OnSaving()
 {
     base.OnSaving();
     if (!(Session is NestedUnitOfWork) && Session.IsNewObject(this))
     {
         _Oid = XpoDefault.NewGuid();
     }
 }
Example #3
0
 protected override void OnSaving()
 {
     base.OnSaving();
     if (Session is NestedUnitOfWork || !Session.IsNewObject(this) || !Oid.Equals(Guid.Empty))
     {
         return;
     }
     Oid = XpoDefault.NewGuid();
 }
Example #4
0
 protected override void OnSaving()
 {
     base.OnSaving();
     if (TrucateStrings)
     {
         DoTrucateStrings();
     }
     if (!(Session is NestedUnitOfWork) && Session.IsNewObject(this) && _oid == Guid.Empty)
     {
         _oid = XpoDefault.NewGuid();
     }
 }
 private Guid NewGuid()
 {
     //SequentialGuid.Create(SequentialGuidType.SequentialAsString)
     if (IsSequential)
     {
         return(SQLGuidUtil.NewSequentialId());
     }
     else
     {
         return(XpoDefault.NewGuid());
     }
 }
Example #6
0
 protected override void OnSaving()
 {
     if (TrucateStrings)
     {
         DoTrucateStrings();
     }
     base.OnSaving();
     if (Session is NestedUnitOfWork || !Session.IsNewObject(this) || !_oid.Equals(Guid.Empty))
     {
         return;
     }
     _oid = XpoDefault.NewGuid();
 }
Example #7
0
 public override void AfterConstruction()
 {
     base.AfterConstruction();
     _oid = XpoDefault.NewGuid();
 }