Платформа сущностей устанавливает свойство навигации

У нас есть база данных, в которой не установлены правильные внешние ключи. Сейчас мы генерируем edmx, используя эту базу данных. Нам нужно установить свойство навигации, чтобы мы могли получить соответствующие данные из другой таблицы. Вот пример того, что именно мы ищем.

Допустим, есть стол сотрудника и отдела. В настоящее время в базе данных нет связи между этими таблицами, но у Employee есть DepartmentId, который берется из таблицы Department.

Когда мы выбираем Employee, мы получаем только DepartmentID, но мы также хотим получить Department как свойство вместе с ним, чтобы мы могли получить такую ​​информацию, как "DepartMentName", "Location", которая хранится в таблице Department.

Мы попытались добавить свойство Navigation в файл EDMX, но оно не удалось и продолжает выдавать ошибку, связанную с отношением.

Пожалуйста помоги

1 ответ

Вы можете пойти с чем-то вроде этого. Создайте класс-оболочку для Employee и Department.

public class EmpDept
{
public Employee Employee {get; set;}
public Department Department {get; set;}
}

public IEnumberable<EmpDept> GetEmployeesWithDeptpartment()
{        
    var result = from e in context.Employee
                 where e.Id == somevalue
                 select new EmpDept()
                        {
                            Employee = e,
                            Department = context.Department.Where(d => d.Id == e.DepartmentId)
                        };
    return result.ToList();
}

Это означает, что у вас есть дополнительный класс, но его можно легко и быстро кодировать, легко расширять, использовать повторно и сохранять тип.

Надеюсь это поможет

Другие вопросы по тегам