Мне бы хотелось решить мою текущую проблему, но я бы хотел ДАЖЕ БОЛЬШЕ, если бы смог понять, что на самом деле означает эта ошибка.
У меня есть классы LINQ to SQL для двух таблиц в моей БД: Поставщики и Назначения .Я добавил следующий член в класс Provider:
public IEnumerable<Assignment> Assignments
{
get
{
return (new linqDataContext())
.Assignments
.Where(a => a.ProviderID == this.ProviderID);
}
}
Затем я связываю GridView, используя запрос, который извлекает из родительского Provider и использует дочерний элемент Assignments , например:
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 (), когда он фактически выполняет запрос, он выдает следующую ошибку:
Доступ к элементу 'System.String Category'of' Namespace.Assignment 'недопустимо для типа' System.Collections.Generic.IEnumerable`1 [Namespace.Assignment].
Я пытался проверить наличие нулей (a => a! =null && a.Category ...) но это не сработало.Я не уверен, что попробовать дальше.Я думаю, что, если бы я знал, что ошибка пытается сказать мне, я мог бы найти решение.В настоящее время я не знаю, почему доступ членов был бы незаконным.