有没有办法将此 entity/linq 查询设置为 IEnumerable?

Is there a way to set this entity/linq query to IEnumerable?

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

编辑:数据类型 Object 可以编译,但我不确定这是否正确。

.Select 已经 returns 和 IEnumerable<TResult> 也将您的 ..where() 子句与 && 结合起来。 https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.select?view=netframework-4.8 also one other thing you can do is use .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();