запрос группы linq в мою модель MVC - PullRequest
2 голосов
/ 10 ноября 2011

У меня есть 2 таблицы в моем проекте EF4.У них нет объединения.

CustomerTable CustomerId ConsumerName AllowEmails

PurchaseTable PurchaseId CustomerId PurchaseDate ......

Я пытаюсь вернуть сгруппированного Клиента, когдау них есть транзакции в рамках таблицы покупок.Если они не совершили никаких покупок или идентификатор покупателя еще не добавлен в идентификатор клиента, я хочу их игнорировать.

У меня есть запрос linq, который работает так, как я хочу

 var query = from t in ctx.PurchaseTable
                    join j in ctx.CustomerTable on t.CustomerId equals
                        j.ConsumerId
                        where j.AllowEmails==true
                    group t by new
                                   {
                                       t.CustomerId,
                                       j.ConsumerName,
                                       j.EmailAddress
                                   }
                    into g
                    select new {Customer = g.Key};

Теперь я мог бы просто сделать цикл foreach и добавить результаты в список, однако я думаю, что было бы неплохо добавить его в список как часть запроса.

Это то, что я получил до сих пор.

  var data = (from t in ctx.PurchaseTable
                     join j in ctx.CustomerTable on t.CustomerId equals
                        j.CustomerId 
                    where j.AllowEmails== true
                    //group t by new //group t by new ConsumerModel
                    group t by new CustomerModel
                                   {
                                       CustomerName= t.CustomerName,
                                       Email= j.EmailAddress,
                                       CustomerId = j.CustomerId


                                   }
                    into g select g);

Может ли кто-нибудь указать мне правильное направление, чтобы исправить мой запрос?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 10 ноября 2011

Вам необходимо select g.Key.

g - это IGrouping<CustomerModel, Purchase>, включающее элементы в группе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...