void AddLoginAsync(TUser user, UserLoginInfo login, ITransaction tx) { Configuration cfg = Configuration.Instance; tx.Run($@" WITH {{logininfo}} AS info MATCH (user:{cfg.UserLabel} {{Id : {{userId}}}}) MERGE (userlogin:{cfg.UserLoginLabel} {{Unique : info.Unique}}) SET userlogin = info CREATE UNIQUE (user)-[:{cfg.HasLoginRelName}]->(userlogin) ", new Dictionary <string, object> { { "userId", user.Id }, { "logininfo", login.ToDictionary() } }); }