Прежде всего, попробуйте больше узнать об архитектуре, сначала научитесь организовывать свой код. Например, вызов базы данных напрямую из контроллера - плохая идея. Я бы сделал что-то вроде этого:
Переместите все вызовы базы данных в отдельные классы репозитория в соответствии с обязанностями.
public class UsersRepository
{
public User GetUser(int id)
{
User user = new User();
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myconn"].ConnectionString))
{
user= db.Query<User>("SELECT * FROM Users where EID=@id", new{ id }).SingleOrDefault();
}
return user;
}
public List<File> GetUserFiles(int id)
{
List<File> files = new List<File>();
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myconn"].ConnectionString))
{
files = db.Query<File>("SELECT * FROM Files where UserID=@id", new{ id });
}
return files;
}
}
Создание модели для хранения ваших данных для подробного просмотра
public class UserDetails
{
public User User { get; set; }
public List<File> Files { get; set; }
}
Создание сервиса или движка для организации вашей бизнес-логики
public class UsersService
{
private UsersRepository _usersRepository;
public UsersService()
{
_usersRepository = new UsersRepository();
}
public UserDetails GetUserDetails(int userId)
{
var details = new UserDetails();
details.User = _usersRepository.GetUser(id);
details.Files = _usersRepository.GetUserFiles(id);
return details;
}
}
Позвоните в контроллер
public class UsersController : Controller // or whatever the base class you have
{
private UsersService _usersService;
public UsersController()
{
_usersService = new UsersService();
}
public ActionResult Details(int id)
{
var details = _usersService.GetUserDetails(id);
return View(details);
}
}
Но имейте в виду, что это очень упрощенный пример. Например, лучше использовать внедрение зависимостей, чем инициализировать сервисы или репозитории в конструкторе. Также во многих случаях не очень разумно использовать одни и те же классы для логики представления и репозитория, рассмотрите возможность использования DTO и классов доменов. Для простых приложений и демонстрации все должно быть хорошо.