Справка по шаблону репозитория MVC2 / LINQ для начинающих - PullRequest
0 голосов
/ 30 июня 2011

У меня есть следующий метод в моем хранилище, который возвращает смесь двух объектов из моей базы данных,

  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);
        }
    }

Это мой код интерфейса для ICustomerAndSitesM

 interface ICustomersAndSitesM
{
    IQueryable<Customer> Customers { get; }
    IQueryable<CustomerSite> CustomerSites { get; }
}

Я пытаюсь понять, как и где определить CustomersAndSitesMix, это должен быть отдельный класс или метод в интерфейсе? и нужно ли это иметь определения как для клиента, так и для сайта клиента?

1 Ответ

0 голосов
/ 30 июня 2011

Я бы настроил CustomersAndSitesMix как класс со всеми свойствами из двух других ваших таблиц, которые вам нужны. Я не уверен, зачем вам нужен этот интерфейс, но я бы также изменил тип возвращаемого вами метода на List<CustomersAndSitesMix> и добавил ToList () в конце вашего запроса LINQ. Затем вы должны вернуть внутреннее объединение обеих таблиц, которое может быть тем, что вам нужно, или вы можете добавить аргумент, скажем CustomerID, чтобы вы могли передать его и получить только подмножество.

...