Я пытаюсь вернуть список в шаблон отображения, содержащий данные из двух таблиц, я использую шаблон хранилища и модель представления, чтобы передать данные в представление из запроса LINQ, который возвращает оба объекта
Есть ли определить коллекцию нескольких типов в интерфейсе?Для одного типа я использовал это в интерфейсе,
IQueryable<CustomerSite> CustomerSites { get; }
, тогда у меня есть мой запрос linq в хранилище
public IQueryable<CustomerSite> CustomerSites
{
get { return customerSitesTable; }
}
Однако, так как этот новый запрос будет содержать 2 типа, обаклиенты и сайты клиентов, как эта коллекция должна быть определена в интерфейсе?
====== ОБНОВЛЕНИЕ
Я попытался использовать .Include (это выдает ошибку о том, что естьнет определения для включения в сущность Customer, не уверен, что для этого им не хватает пространства имен?)
Я также пытался создать пользовательский интерфейс,
public interface ICustomersAndSitesRepository
{
IQueryable<CustomerSite> CustomerSites { get; }
IQueryable<Customer> Customers { get; }
IQueryable<ICustomersAndSitesRepository> CustomerAndSites { get; }
}
И этот метод вхранилище
public IQueryable <ICustomersAndSitesRepository> CustomerAndSites
{
get { return CustomerAndSites; }
}
Однако, когда я пытаюсь передать коллекцию представлению в контроллере, например,
public ViewResult List([DefaultValue(1)] int page)
{
var customersWithSitesToShow = customersAndSitesRepository.CustomerAndSites;
var viewModel = new CustomerSitesListViewModel
{
Customers = customersWithSitesToShow.Skip((page - 1) * PageSize).Take(PageSize).ToList(),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = customersWithSitesToShow.Count()
}
};
return View(viewModel); //Passed to view as ViewData.Model (or simply model)
}
, я получаю ошибку преобразования при преобразовании хранилища в модель представления
Cannot implicitly convert type 'System.Collections.Generic.List<CustomerDatabase.Domain.Abstract.ICustomersAndSitesRepository>' to 'System.Collections.Generic.IEnumerable<CustomerDatabase.WebUI.Models.CustomerViewModel>'. An explicit conversion exists (are you missing a cast?)
Я определяю модель представления как
public IEnumerable Customers {get;задавать;}
Может ли кто-нибудь указать мне правильное направление?