Предположим, у меня есть следующие таблицы с построением правильных отношений:
Employee(empID, ...)
Address(AddresID, ...)
EmployeeAddress(EmpID, AddressID, ...)
Затем изменил сгенерированный код для GetEmployee с помощью .NET RIA Services, например:
public IQueryable<Employee> GetEmployee()
{
var Employee = this.Context.Employee.Include("EmployeeAddress").Include("Address");
return Employee;
}
Атрибут [Включить] добавлен для EmployeeAddress в Employee и Адрес в EmployeeAddress.
При запуске кода на стороне клиента Silverlight со следующим кодом:
EntityQuery<Employee> query = from e in ctx.GetEmployeeQuery()
select e;
У меня ничего нет. Если я уберу включение из GetEmployee, например:
public IQueryable<Employee> GetEmployee()
{
var Employee = this.Context.Employee;
return Employee;
}
Работает нормально.
Для члена поиска в Employee, например, Пол
public IQueryable<Employee> GetEmployee()
{
var Employee = this.Context.Employee.Include("GenderLookup");
return Employee;
}
Работает отлично. Здесь Employee.Gender - это один объект. Это потому, что Employee.EmployeeAddress - это коллекция, а не один объект?
Не могу понять причину. Как это решить?