是否可以将这个实体/ linq查询设置为IEnumerable?

问题描述 投票:0回答:2

我正在尝试返回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
                });

编辑:类型对象可以编译,但是我不确定是否正确。

c# linq anonymous-types
2个回答
0
投票

尝试以GetEnumerator()结尾

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
                 }).GetEnumerator();

0
投票

.Select已经返回一个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();
© www.soinside.com 2019 - 2024. All rights reserved.