Есть ли способ установить этот запрос entity / linq в IEnumerable? - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь вернуть операции IEnumerable вместо «var»

var activities = ctx.Activities.Where(a => a.SiteID == propID)
                 .Where(a => a.ActivityTypeName == "Call")
                 .Select(x => new
                 {
                   x.DateTimeEntry,
                   x.Contact.OwnerContact.ParcelDatas
                    .FirstOrDefault(a => a.OwnerContactID == x.Contact.OwnerContact.OOwnerID)
                    .Parcel_LetterTracking.LMailDate,
                   x.FAQs.FirstOrDefault(a => a.ActivityID == x.ActivityID)
                    .FAQ_Library.FaqNum,
                   x.FAQs.FirstOrDefault(a => a.ActivityID == x.ActivityID)
                    .FAQ_Library.Question
                 });

edit: тип данных Объект компилируется, но я не уверен, что это правильно.

1 Ответ

0 голосов
/ 01 октября 2019

.Select уже возвращает a IEnumerable<TResult> и объединяет ваши. .where() предложения вместо &&. https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.select?view=netframework-4.8 еще одна вещь, которую вы можете сделать, это использовать .AsEnuemerable ()

 var activities = ctx.Activities.Where(a => a.SiteID == propID && a.ActivityTypeName == "Call")
                .Select(x => new 
                {                 
                    x.DateTimeEntry,
                    x.Contact.OwnerContact.ParcelDatas.FirstOrDefault(a => a.OwnerContactID == x.Contact.OwnerContact.OOwnerID).Parcel_LetterTracking.LMailDate,
                    x.FAQs.FirstOrDefault(a => a.ActivityID == x.ActivityID).FAQ_Library.FaqNum,
                    x.FAQs.FirstOrDefault(a => a.ActivityID == x.ActivityID).FAQ_Library.Question
            }).AsEnumerable();
...