我在WPF中编写了以下代码,但它说:
错误1无法将类型'WpfApplication.Role'转换为'string'。
此处代码:
myEntities是数据库的名称。
public List<Role> GetUserRoles( string currentUser)
{
nrcsaEntities dbcon = new nrcsaEntities();
N_Roles_Users allroles = null;
List<Role> roleslist = new List<Role>();
if (allroles == null)
{
allroles = new N_Roles_Users();
{
var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x.role_name;
foreach (var a in y)
{
roleslist.Add(a); //Here it is Generating Error
}
q.ItemsSource = roleslist.ToList();
}
}
return roleslist;
}
答案 0 :(得分:3)
您查询返回x.role_name
,这似乎是string
:
var y = from x in dbcon.N_Roles_Users
where x.user_name == currentUser
select x.role_name;
这就是您无法将其分配给List<Role>
的原因。更改您的查询以选择Role
实体而不仅仅是角色名称,它应该有效。
或者更改方法声明以返回List<string>
:
public List<string> GetUserRoles( string currentUser)
并将roleslist
更改为List<string>
:
List<string> roleslist = new List<string>();
答案 1 :(得分:1)
List<Role> rolesList
是Role
类型的列表。
您的查询似乎返回一组字符串。
下面,您尝试将string
添加到列表中Role
roleslist.Add(a);
根据您想要添加Role
对象本身的内容,在这种情况下,您可以更新查询以返回角色集合:
var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x;