0

我很喜欢这种来自 LINQ 业务的匿名类型。这是解决上一个问题的答案的结果,但遗憾的是,我根本没有脑力来解决这个问题。

我将返回与每个人相关的有限事件列表。来源是实体框架,我仍在努力从导航属性中获取标准受限的结果。下面的代码是我从 Nicholas Butler 的回答中翻译过来的。但是,我找不到任何方法来适应匿名类型。演员表似乎不起作用 - 或者我只是没有线索(可能)。有人可以帮忙吗?

Dim test = context.persons.Where(Function (r) r.personActive).Select(Function (o) New With { _
                 .person = o, _
                 .events = o.events.Where( Function(e) e.eventDateTime > startdate) _
            })

            Dim Res = New ObservableCollection(Of person )

            For Each person In test
                Res.Add(person)
            Next

给我:

错误 2 类型“<匿名类型>(第 53 行)”的值无法转换为“PersonEntity.person”。E:\Dropbox\Work Experimental\PersonEntity- Copy\PersonEntity\personRepository.vb 61 29 PersonEntity

我已经对这段代码进行了进一步的处理,但我仍然无法获得附加的事件,因为我在这次事件的转换中遇到了另一个错误。通用列表到 ObservableList 显然没有转换。回答我原来的问题似乎是一种不可思议的方式!

Dim test = context.persons.Where(Function(r) r.personActive).Select(Function(o) New With { _
                 .person = o, _
                 .events = o.events.Where(Function(e) e.eventDateTime > startdate) _
            })


            Dim Res = New ObservableCollection(Of person)

            For Each t In test
                Dim r As New person
                r = t.person
                r.events = t.events
                Res.Add(r)
            Next

            Return Res
4

1 回答 1

1
Function(o) New With { _
         .person = o, _
         .events = o.events.Where(Function(e) e.eventDateTime > startdate) _
    }

这将返回一个匿名类型,而不是Person. 你的意思是Add它的person财产*?

For Each o In test
    Res.Add(o.person)
Next
于 2012-12-17T23:35:11.480 回答