MVC 2 с Entity Data Model, возвращающей Null для внешних ключей - PullRequest
0 голосов
/ 12 апреля 2011

Я создаю свое первое приложение MVC 2.Я следовал за примерами в своих книгах и создал модель данных объекта ADO.NET, которая автоматически генерировала файлы model.edms и model.designer.cs.Затем я создал файл repository.cs в папке моей модели для хранения моих методов получения данных.Когда я использую эти методы для извлечения объекта из моих таблиц, атрибуты ключа foriegn возвращаются с нулевым значением.Вот один из моих методов

    private LanTracerEntities2 entities = new LanTracerEntities2();

    public Employee FindEmployee(string empId)

    {
        var emp =  from employee in entities.Employees
               where employee.LogIn == empId
               select employee;

        return emp.FirstOrDefault();
    }

Таблица сотрудников имеет следующие столбцы: Идентификатор EmpFName EmpLName EmpInitial Телефон Логин Email LocID

LocID - это внешний ключ, связывающий его с таблицей Location.Когда я запускаю метод, он возвращает значение для каждого атрибута, кроме LocID.LocID является нулевым.В таблице есть данные.Это не единственный объект, который у меня есть, который возвращает нуль для внешних ключевых атрибутов.Как я могу получить метод для возврата значений FK?

1 Ответ

0 голосов
/ 12 апреля 2011

Похоже, вы сравниваете не то свойство? Учитывая название вашего параметра Я думаю, вы можете сравнить с идентификатором сотрудника:

    var emp =  from employee in entities.Employees
           where employee.ID == empId
           select employee;

Сказав, что ваш первичный ключ должен быть числовым int / bigint - в таком случае сделайте это вместо:

    int id = Convert.ToInt32(empId);
    var emp =  from employee in entities.Employees
           where employee.ID == id
           select employee;

Если вы хотите включить Location в свои результаты запроса, вы можете указать это:

var emp =  from employee in entities.Employees.Include("Location") 
           ..

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...