如下两个类
public class UserInfoRoleInfo
{
public int UserId { get; set; }
public string UserNumber { get; set; }
public string UserName { get; set; }
public RoleInfo RoleInfoModel { get; set; }
}
public int RoleId { get; set; }
public string RoleName { get; set; }
public string RoleDesc { get; set; }
现在要在datagridview 中 的datapropertyname 中显示 rolemodel.rolename
在winform中 datagridview的datapropertyname 不支持导航属性 要想显示 rolemodel.rolename 可通过linq的方式如
List<UserInfoRoleInfo> lists =uService.GetAllUserInfo() //通过数据库的方法查询处数据
//通过匿名类型获取rolemodel.rolename属性 这里的只能通过var 定义
var lists2 = lists.Select(s => new {s.UserId,s.UserNumber,s.UserName, role_name = s.RoleInfoModel.RoleName });
//因lists2为IEnumerable类型 不能直接被datagridview绑定 只能传成集合在绑定
dgvUserInfo.DataSource = lists2.ToList();