面向初学者的MVC2/LINQ存储库模式帮助

面向初学者的MVC2/LINQ存储库模式帮助,linq,asp.net-mvc-2,interface,repository,viewmodel,Linq,Asp.net Mvc 2,Interface,Repository,Viewmodel,我的存储库中有以下方法,该方法从数据库返回两个对象的混合 public IQueryable <ICustomersAndSitesM> CustomerAndSites { get { return from customer in customerTable join site in customerSitesTable on

我的存储库中有以下方法,该方法从数据库返回两个对象的混合

  public IQueryable <ICustomersAndSitesM> CustomerAndSites
    {
        get
        {
            return from customer in customerTable
                   join site in customerSitesTable
                        on customer.Id equals site.CustomerId
                   select new CustomersAndSitesMix(customer, site);
        }
    }
公共IQueryable自定义站点
{
得到
{
customerTable中的客户退货
在CustomerTestable中加入站点
在customer.Id上等于site.CustomerId
选择新客户和站点SMIX(客户,站点);
}
}
这是我的ICustomerAndSitesM接口代码

 interface ICustomersAndSitesM
{
    IQueryable<Customer> Customers { get; }
    IQueryable<CustomerSite> CustomerSites { get; }
}
接口ICcustomersandSiteSM
{
IQueryable客户{get;}
IQueryable自定义项{get;}
}

我正在努力研究如何以及在何处定义CustomersAndSitesMix,这应该是一个单独的类还是接口中的一个方法?这是否需要同时定义customer和customer站点?

我会将Customers和SitesMix设置为一个类,包含您需要的其他两个表中的所有属性。我不确定您为什么需要这个接口,但我也会将方法的返回类型更改为
List
,并在LINQ查询的末尾添加一个ToList()。然后,您将返回两个表的内部联接,这可能是您想要的,或者您可能想要添加一个参数,比如CustomerID到您的函数中,这样您就可以传入它并只获得一个子集