Фон:
Мне было поручено преобразовать приложение базы данных Access в ASP.Net С# MVC. Это мое первое приложение MVC.
Есть 10 отчетов, которые нуждаются в преобразовании. Мы используем файлы RDLC и Reportviewer. Я использую Visual Studio 2010 со всеми последними исправлениями. Мы подключаемся к базе данных SQL Server, заполненной существующей базой данных Access, поэтому структура таблицы в значительной степени задана в камне, иначе нам придется попытаться преобразовать 10 лет данных.
Я выполнил все, кроме двух отчетов. Окончательные отчеты требуют большей обработки и не просто отображают данные из базы данных. Самый простой способ сделать это - создать объект С# и выполнить всю обработку на стороне сервера, а затем использовать RDLC для отображения результатов.
Вопрос
Проблема, с которой я сталкиваюсь, заключается в том, что Visual Studio не будет распознавать объекты, которые я создал как потенциальные источники данных. Каждый раз, когда я пытаюсь "добавить набор данных", он вызывает "мастер настройки источника данных" и предлагает только базу данных SQL Server в качестве возможного подключения к данным. Я знаю, что существует экран, который позволяет вам выбрать объект в качестве набора данных, но я никогда не вижу этот экран.
Здесь объекты (функции обработки удалены для ясности):
public class TurnAroundVal
{
// Registration Package information
public string dataType { get; set; }
// Calculated totals; values only set through constructor or calculation function
public int packageCount { get; private set; }
public int dayCount { get; set; }
public double avgTurnAround { get; private set; }
public int upperRange { get; private set; }
public int lowerRange { get; private set; }
}
public class TurnAroundVals
{
// Public Variables
public IEnumerable<TurnAroundVal> TurnArounds { get; private set; }
public DatePass dates { get; set; }
public int pkgTotal { get; private set; }
public double dayTotal { get; private set; }
public double avgAllTurnArounds { get; private set; }
}
Я также хотел бы использовать IEnumerable из "TurnAroundVal" в качестве источника данных и просто передавать даты, int и double в качестве параметров. Либо все будет работать.
Вопрос
Есть ли в Visual Studio 2010 параметр, который я пропускаю, чтобы позволить конструктору RDLC видеть созданные мной объекты? Я ошибаюсь, даже думая, что это будет работать с классами, которые я определил?
Ответ
Все предложенные предложения были полезными, но в конечном итоге то, что заставило его работать для меня, было создание временного не-веб-проекта в том же решении и создание RDLC там. Когда я пошел добавлять набор данных, он показывает "Объекты" в качестве опции. Вы должны добавить ссылку на свой веб-проект, чтобы ваши объекты были видны, но затем вы можете выбрать тот, который вы хотите, и использовать его в RDLC. После этого вы можете просто перетащить RDLC файл в свой веб-проект, удалить временный проект, и вам хорошо идти. Просто помните, что вам нужно добавить источники данных вручную в код, и их нужно называть теми же, что указаны в RDLC.