2016-04-13 91 views
0

Kullanıcı adı bir eğik çizgi içeriyorsa, Rolls.RemoveUserFromRole öğesinin çalışmadığı MySQL'de bir hata var gibi görünüyor. Sorun burada https://bugs.mysql.com/bug.php?id=77264 ayrıntılı olarak açıklanmıştır, ancak herhangi bir iş bulmak için görünmüyor olabilir. UserName.Replace (@ "\", @ "\") kullanarak "\" den kaçmayı denedim, ancak bu bir fark yaratmıyor. Baska öneri?MySQL Roles.RemoveUserFromRol MySQL içinde çalışmıyor

cevap

0

Bu, MySQL rol sağlayıcısına giderilene kadar kendi başıma yuvarlanmaya başladım. İşte herkesin ihtiyacı varsa kod (nHibernate aromalı).

private static bool RemoveUserFromRole(string userId, string roleName) 
    { 
     var sess = NHibernateSession.GetDefaultSessionFactory().OpenSession(); 

     const string query = @" 
           delete 
           from my_aspnet_usersinroles 
           where 
            roleId in (select id from my_aspnet_roles where name = :roleName) 
            and userId = :userId; 
           "; 
     var result = sess.CreateSQLQuery(query) 
       .SetParameter("userId", userId) 
       .SetParameter("roleName", roleName) 
       .ExecuteUpdate(); 

     return result >= 0; 

    }