2014-10-30 3 views
0

Прежде всего получите имя роли на основе пользователя входа. После этого получите код функции из db на основе роли. Мне нужно присвоить sql результат в Array, но держать показать ошибку can't convert from string to string[]Как назначить значение в массив в C#

public override string[] GetRolesForUser(string username) 
    { 
     DEV_Context OE = new DEV_Context(); 
     string role = OE.UserRefs.Where(x => x.UserName == username).FirstOrDefault().RoleName; 

     string[] permission = OE.RolePermissionRefs.Where(x => x.RoleName == role).FirstOrDefault().FunctionCode; 
     string[] result={permission}; 

     return result; 
    } 
+0

Почему бы вам не только вернуть разрешение; ? Кроме того, я советую вам использовать Collection-Types вместо массивов. Например, список Jannik

ответ

1

Вам нужно массив строки, поэтому вместо того, чтобы использовать FirstOrDefault, используйте Select и чем ToArray метод.

Ваш метод должен выглядеть

public override string[] GetRolesForUser(string username) 
{ 
    DEV_Context OE = new DEV_Context(); 
    string role = OE.UserRefs.Where(x => x.UserName == username).FirstOrDefault().RoleName; 

    string[] result= OE.RolePermissionRefs.Where(x => x.RoleName == role).Select(x=>x.FunctionCode).ToArray(); 

    return result; 
} 
+0

спасибо за объяснение, он работает – WengKit