无法将类型表类型转换为';字符串';
本文关键字:字符串 类型转换 类型 | 更新日期: 2023-09-27 18:28:38
我在WPF中写了下面的代码,但它说:
错误1无法将类型"WpfApplication.Role"转换为"string"。
这里的代码:
- Roles和N_Roles_Users是数据库表的名称
- currentUser是字符串参数
-
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; }
查询返回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>();
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;