我試圖將列表返回到包含來自兩個表中的數據的顯示模板,我正在使用存儲庫模式,並使用視圖模型來傳遞數據從LINQ查詢返回兩個對象的視圖ASP.net MVC.2如何在存儲庫接口中定義多個類型的集合
是否有定義接口中多種類型的集合? 對於單一類型的我已經在接口中使用此,
IQueryable<CustomerSite> CustomerSites { get; }
的話,我有我的LINQ查詢在倉庫中
public IQueryable<CustomerSite> CustomerSites
{
get { return customerSitesTable; }
}
不過,由於這個新查詢將包含2種類型,客戶和客戶網站,這個集合應該如何在界面中定義?
====== UPDATE
我已經使用在.include(這將引發一個錯誤,指出沒有定義包括在客戶實體,不知道我在想念這個名稱空間的嘗試?)
我也嘗試創建一個自定義的界面,
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)
}
我得到一個轉換錯誤重新convreting的repostiory向視圖模型
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;組; }
任何人都可以指出我在正確的方向嗎?
謝謝我試圖實現這一點,但.Include拋出一個錯誤,指出它在客戶實體中沒有定義,是否有一個命名空間需要的.Include工作? – Liam
@Liam,你只需要添加'使用System.Linq;'或者'使用System.Data.Entity'。但是,請確保您正確拼寫Include實體,因爲這是EDMX中顯示的關係而不是表名。如果這是一個多對多的關係,那麼它可能是CustomerSites。 –
@Liam,還要確保你的'web.config'中的實體的連接字符串中指定了'MultipleActiveResultSets = True'。 –