面向初学者的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到您的函数中,这样您就可以传入它并只获得一个子集