【发布时间】:2018-06-02 22:23:44
【问题描述】:
我从 LINQ 查询加载数据网格视图时出错。
我正在查询以从 3 个表中加载数据,但我总是收到“无法将 List 隐式转换为 IQueryable。我知道存在强制转换,但无法弄清楚。
因此,首先,我在表单中添加了一个类,该类将具有我希望加入的每一行的值作为属性:
public class ListofModuleUser
{
public string User { get; set; }
public string Modulo { get; set; }
public bool Read { get; set; }
public bool Write { get; set; }
public bool Create { get; set; }
public bool Delete { get; set; }
public bool Navigate { get; set; }
}
其次,我正在查询并希望返回一个列表以便能够填充我的 datagridview:
public IQueryable<ListofModuleUser> LoadData()
{
var ctx = new JEntities();
var fillusers = (from mu in ctx.tblModuloUsers.AsQueryable()
join u in ctx.tblUsers on mu.UserID equals u.UserID
join m in ctx.tblModuloes on mu.ModuloID equals m.ModuloID
select new
{
User = u.Username,
Modulo = m.Moduloname,
Read = mu.CanRead,
Write = mu.CanWrite,
Create = mu.CanCreate,
Delete = mu.CanDelete,
Navigate = mu.CanNavigate
}).ToList();
return fillusers; //---> Obviously the error occours here!
}
然后,在 Load 事件中,我得到我的列表并填充我的 datagridview:
private void MapUserToModulos_List_Load(object sender, EventArgs e)
{
usersmodules_datagrid.DataSource = LoadData();
}
谁能帮我弄清楚我必须使用哪种演员表,因为我已经尝试了所有可能的演员表(ToList、Array、AsEnumerable、AsQueryable...)
【问题讨论】: