public Identity(Guid id)
 {
     if (id == GuidNon)
     {
         throw new ArgumentException($"id cannot be {GuidNon}");
     }
     _kind   = IdentityIdKind.Guid;
     _guidId = id;
 }
 public Identity(int id)
 {
     if (id == IntNon)
     {
         throw new ArgumentException($"id cannot be {IntNon}");
     }
     _kind  = IdentityIdKind.Int;
     _intId = id;
 }
 public Identity(long id)
 {
     if (id == LongNon)
     {
         throw new ArgumentException($"id cannot be {LongNon}");
     }
     _kind   = IdentityIdKind.Long;
     _longId = id;
 }
 public Identity(string id)
 {
     if (id == StringNon)
     {
         throw new ArgumentException($"id cannot be null");
     }
     _kind     = IdentityIdKind.String;
     _stringId = id;
 }