Проект C # Entity Framework 6 создается, но данные из базы данных не отображаются

#c# #sql-server #entity-framework-6

#c# #sql-server #entity-framework-6

Вопрос:

Новичок в Entity Framework, но я пытаюсь привести своего работодателя в 20-й век. Вот в чем проблема. У нас есть сторонний продукт, который мы используем для большинства видов деятельности нашей организации. Нам не разрешено вносить какие-либо изменения в их базу данных. Мы поддерживаем вторую базу данных, в которую мы помещаем любой внутренний код для работы с их таблицами (только для выбора)

У нас есть ежевечерний отчет, который выполняется как задание из второй базы данных, которая извлекает информацию из базы данных третьей стороны, форматирует ее в Excel (в любом случае, вроде), а затем отправляет ее требуемым пользователям.

Я пытаюсь создать версию отчета для веб-сайта, чтобы результат был более чистым. Я смоделировал тестовый сайт, и вся функциональность отлично работает с макетом. Я скопировал запрос задания в хранимую процедуру, добавил в проект объект edmx, указывающий на хранимую процедуру в качестве источника через DbContext. Это не вернуло никаких данных. Одна из вещей, которые я заметил, это то, что когда я добавил объект edmx, диаграмма модели была пустой.

После долгих исследований, похоже, не так много примеров первой реализации Entity Framework в базе данных, подключающейся к хранимой процедуре в качестве ее источника. После проверки того, что я смог найти, я довел проект до такой степени, что он будет создан и запущен, но на сгенерированной им странице не было никаких данных. Я знаю, что страница работала, потому что макет и другие элементы на странице присутствуют. Я решил, что умное мышление не работает, поэтому пришло время подумать глупо.

Поскольку большинство реализаций подключены к таблицам, я решил создать представление во внешней базе данных. Когда я перестроил объект edmx, указывающий на представление, диаграмма модели была заполнена, а не пуста. Я подумал, что это шаг в правильном направлении, но на странице снова не было показано никаких данных.

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

Может кто-нибудь указать мне направление того, что я мог бы проверить, чтобы выяснить, что происходит не так? Заранее спасибо.

Код, добавляемый по запросу (использование удалено для краткости)

 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);
    }
    }
}
 

Комментарии:

1. Используйте System.Data.SqlClient

2. 1) И когда они сначала перестанут делать все на бумаге, мы сможем поговорить о том, чтобы ввести их в 21-й век. Детские шаги 2) некоторый код, добавленный выше, однако не уверен, какой код будет полезен, поскольку я сам только изучаю EF. 3) с удовольствием исключаю ссылки на любые сайты с примерами, но все, что приходит в голову моему google-foo, — это те же 3 или 4 статьи. 4) Каждый раз, когда я задаю здесь вопрос, кто-то жалуется на то, как я его задал: слишком много кода, недостаточно, слишком много объяснений, недостаточно объяснений.

3. Тем не менее, надеялся узнать что-то новое. Это моя резервная копия.

4. «… Каждый раз, когда я задаю здесь вопрос, кто-то жалуется …» — не принимайте это на свой счет. Мы просто пытаемся сделать SO отличным сайтом для всех, в отличие от ужасных социальных форумов MSDN 😉 В любом случае, я подумал, что ваш январский вопрос был в порядке, поэтому я дал вам положительный отзыв 🙂 желаю вам всего наилучшего