У меня есть Web API 2 Сервис и WPF OData Client и я работаю с Crystal Reports.Как обрабатывать отношения «один ко многим» в OData Client?
У меня есть две таблицы (Преподаватель, Тема), имеющий один ко многим отношения между ними. Я пытаюсь получить Темы против Teacher_Id.
Ниже приведен код, который я использую:
private string ServiceUri = "http://localhost:50623/odata";
private void pge_TeacherReportPage_Loaded(object sender, RoutedEventArgs e)
{
var Container = new Default.Container(new Uri(ServiceUri));
ReportDocument report = new ReportDocument();
report.Load("../../TeacherCrystalReport.rpt");
var Teacher = from c in Container.Teachers
select new
{
Name = c.Name,
FatherName = c.FatherName,
ContactNo = c.ContactNo,
Address = c.Address,
Religion = c.Religion,
CNIC = c.CNIC,
Status = c.Status,
UserName = c.UserName,
Subjects = c.Subjects.Where(s=> s.Teacher_Id == c.Teacher_Id).SingleOrDefault()
};
report.SetDataSource(Teacher);
rpt_Teacher.ViewerCore.ReportSource = report;
}
Но я не могу сделать так, как я получаю следующее Exception:
необработанное исключение типа «System .NotSupportedException 'произошел в Microsoft.OData.Client.dll
Дополнительная информация: Создание или инициализация экземпляров тип <> f__AnonymousType1`9 [System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, QuizSystemClient.RestApiOData.Models.Subject] с выражением c.Subjects.Where (s => (s.Teacher_Id == c.Teacher_Id)). SingleOrDefault() не поддерживается.
Скажите, пожалуйста, как я могу это решить?