Как я могу получить данные из нескольких баз данных в asp.net webapi mvc - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь получить данные из нескольких баз данных, но получаю следующую ошибку

System.NotSupportedException: 'Указанное выражение LINQ содержит ссылки на запросы, связанные с различными контекстами.

Код:

private EmployeesEntities db = new EmployeesEntities();
private LogEntities Logdb = new LogEntities();

// GET: api/employees
public IHttpActionResult GetEmployees()
{
    var query = (from emp in db.employees /*where ToInt32(emp.active) =1*/
                 join location in db.locations on emp.location_id equals location.id
                 into emp_loc
                 from location in emp_loc.DefaultIfEmpty()
                 where emp.active.Equals(1)

                 join position in Logdb.positions on emp.employee_number equals position.employee_number

                 select new
                        {
                             emp.employee_number,
                             emp.employee_photo,
                             emp.first_name,
                             emp.last_name,
                             position.position1
                        });
 
    var employees = query.ToList();
 
    return Ok(employees);
}

1 Ответ

1 голос
/ 07 ноября 2019

Вот пример:

var employees = db.employees.Where(e => e.active.Equals(1)).ToList();
var positions = Logdb.positions.ToList();

var results = (from emp in employees 
               join pos in positionss on emp.employee_number equals pos.employee_number
               select new 
               {
                     emp.employee_number,
                     emp.employee_photo,
                     emp.first_name,
                     emp.last_name,
                     pos.position1
               });

        return Ok(results.ToList());

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

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