【发布时间】:2010-02-17 21:19:26
【问题描述】:
我希望找到解决当前问题的方法,但如果我能理解该错误的实际含义,我会更喜欢。
我的数据库中有两个表的 LINQ to SQL 类:Providers 和 Assignments。我在 Provider 类中添加了以下成员:
public IEnumerable<Assignment> Assignments
{
get
{
return (new linqDataContext())
.Assignments
.Where(a => a.ProviderID == this.ProviderID);
}
}
然后,我使用从父 Provider 提取并使用子成员 Assignments 的查询绑定 GridView,如下所示:
protected void PopulateProviders()
{
linqDataContext context = new linqDataContext();
var list = from p in context.Providers
where (p.Assignments.Count(a => a.Category == ddlCategory.SelectedValue) > 0)
select p;
lvProviders.DataSource = list;
lvProviders.DataBind();
}
在.DataBind()处,实际运行查询时,会抛出如下错误:
“Namespace.Assignment”的成员访问“System.String Category”在“System.Collections.Generic.IEnumerable`1[Namespace.Assignment] 类型上不合法。
我尝试过检查空值(a => a != null && a.Category ...),但没有奏效。我不确定下一步该尝试什么。我认为,如果我知道错误试图告诉我什么,我就能找到解决方案。就目前而言,我不知道为什么会员访问是非法的。
【问题讨论】:
标签: c# linq-to-sql