【问题标题】:Is there a way to set this entity/linq query to IEnumerable?有没有办法将此实体/linq 查询设置为 IEnumerable?
【发布时间】:2019-10-01 20:39:39
【问题描述】:

我正在尝试返回一个 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 可以编译,但我不确定这是否正确。

【问题讨论】:

    标签: c# linq casting ienumerable anonymous-types


    【解决方案1】:

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

    【讨论】:

    • 我更喜欢 AsEnumerable,因为它返回的是 IEnumerable 而不是枚举器。谢谢!
    • 没问题很高兴我能帮上忙。
    • @Neovssmith,您所说的“我更喜欢 AsEnumerable 因为它返回的是 IEnumerable 而不是枚举器”是什么意思?
    • @PauloMorgado GetEnumerator 暗示他正在遍历列表,但情况可能并非如此。也许他正在向客户端返回一些东西而不是遍历数据?
    • GetEnumerator() 创建一个枚举器。不代表什么。
    猜你喜欢
    • 2021-01-04
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2021-11-13
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多