Новое в Entity Framework, но я пытаюсь вывести своего работодателя в 20-й век. Здесь проблема. У нас есть сторонний продукт, который мы используем для большинства видов деятельности нашей организации. Нам не разрешено вносить какие-либо изменения в их БД. Мы поддерживаем вторую базу данных, в которую мы помещаем любой код дома для запуска их таблиц (только выбор)
У нас есть ночной отчет, который запускается как задание из второй базы данных, который извлекает информацию из базы данных третьей стороны, форматирует ее в excel (вроде как в любом случае) и затем отправляет ее нужным пользователям.
Я пытаюсь создать версию отчета на веб-сайте, чтобы результат был чище. Я смоделировал тестовый сайт, и все функции отлично работают с макетом. Я скопировал запрос задания в хранимую процедуру, добавил в проект объект edmx, указывающий на хранимую процедуру в качестве источника через DBContext. Это не вернуло никаких данных. Одна из вещей, которые я заметил, это то, что когда я добавил объект edmx, диаграмма Model была пустой.
После долгих исследований, кажется, не так много примеров того, как база данных сначала реализовывала Entity Frameworks, подключаясь к хранимой процедуре в качестве ее источника. Испытав то, что я смог найти, я довел проект до такой степени, что он собирался и работал, но на сгенерированной странице не было никаких данных. Я знаю, что страница работала, потому что макет и другие элементы на странице присутствуют. Я решил, что умное мышление не работает, поэтому пришло время думать глупо.
Поскольку большинство реализаций связано с таблицами, я решил создать представление во внешней базе данных. Когда я перестроил объект edmx, указывающий на вид, диаграмма модели была заполнена, а не пуста. Я подумал, что это был шаг в правильном направлении, но опять же данные не были показаны на странице.
Задание SQL генерирует данные при запуске из внешней базы данных, новое представление генерирует данные в SQL Manager, когда я запрашиваю его. Проект может видеть схему представления, когда я настраиваю его в проекте. Проект создается и запускается, но данные не отображаются или не отображаются.
Может ли кто-нибудь указать мне, что я могу проверить, чтобы понять, что происходит не так? Заранее спасибо.
Код добавлен для каждого запроса (для краткости использование удалено)
namespace MissingMinutes.Domain.Concrete {
public class EFDbContext : DbContext {
public DbSet<MissingMinuteInstance> MMInstances { get; set; }
}
}
namespace MissingMinutes.Domain.Concrete {
public class EFReportRepository : IOdysseyRepository {
private EFDbContext context = new EFDbContext();
public IQueryable<MissingMinuteInstance> MMInstances {
get { return context.MMInstances; }
}
}
}
namespace MissingMinutes.WebUI.Controllers {
public class ReportController : Controller {
private IOdysseyRepository repository;
public ReportController(IOdysseyRepository odysseyRepository) {
this.repository = odysseyRepository;
}
public ViewResult List() {
return View(repository.MMInstances);
}
}
}