У меня есть (среди прочих) эти три класса:
public class Contact {
public long Id { get; set; }
public virtual ICollection<ContactSeasonRelation> ContactSeasonRelations { get; set; }
}
public class ContactSeasonRelation {
public long ContactId { get; set; }
public Contact Contact { get; set; }
public long SeasonId { get; set; }
public Season Season { get; set; }
public long? SportTeamId { get; set; }
public SportTeam SportTeam { get; set; }
}
public class SportTeam {
public long Id { get; set; }
public virtual ICollection<ContactSeasonRelation> ContactSeasonRelations { get; set; }
}
И у меня есть помощник, который поможет мне составить запрос, чтобы получить список для заполнения таблицы на странице html:
public static Expression<Func<T, object>> FieldNameToExpression<T>(string fieldName) where T : class
{
var tokens = fieldName.Split('.').Select(t => t.FirstToUpperCase());
var parameter = Expression.Parameter(typeof(T), "t");
Expression memberExpression = parameter;
foreach (var token in tokens)
{
memberExpression = Expression.PropertyOrField(memberExpression, token);
}
var body = Expression.Convert(memberExpression, typeof(object));
var lambda = Expression.Lambda<Func<T, object>>(body, parameter);
return lambda;
}
Я пытаюсь создать список контактов, но когда я использую помощника для сортировки моего списка в ContactSeasonRelation.SportTeam, я получаю «необработанное исключение»:
ArgumentException: ' SportTeam 'не является членом типа' System.Collections.Generi c .ICollection`1 [ContactSeasonRelation] 'Имя параметра: propertyOrFieldName
Что я делаю не так? Я бы сказал, что SportTeam является членом ContactSeasonRelation?