Рекомендуется не взаимодействовать напрямую с вашим DbContext в представлении, вы должны были бы выполнять свои вызовы в контроллере, затем заполнять ViewModel значениями из каждой базы данных, а затем передавать модель представления между представлением и контроллером.
Допустим, в DB1 есть наши данные об учениках, а в DB2 - данные об учителях. Нам нужны модели:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Teacher
{
public string Id { get; set; }
public string Name { get; set; }
}
public class StudentViewModel
{
public Student Student { get; set; }
public Teacher Teacher { get; set; }
}
В нашем контроллере мы получаем данные из каждой БД, затем объединяем их в ViewModel:
var studentData = context1.ModelA.GetStudent(studentId);
var teacherData = context2.ModelA.GetTeacher(teacherId);
var viewModel = new StudentViewModel()
{
Student = studentData,
Teacher = teacherData
};
return View(viewModel);
В возвращении контроллера мы возвращаем viewModel в представление. Затем в представлении вы будете делать то, что вы делаете, затем отправлять модель представления обратно в контроллер для сохранения в отдельных БД.
Вид:
@model MyApp.Models.StudentViewModel
<!-- Do stuff -->