using lambda on collection

Posts   
 
    
Anthony
User
Posts: 155
Joined: 04-Oct-2006
# Posted on: 10-Jan-2016 14:08:09   

Using vb.net, llblgen v3, adapter

Dim IssueList As List(Of VwIssueEntity) = oUserIssues.DefaultView().ToList()

                IssueList = IssueList.Select(Function(x) x.IssueStatusId = 4 AndAlso Now.Subtract(x.DateModified).TotalDays < 5)

I get this error

Unable to cast object of type 'WhereSelectListIterator2[SBH.Dal.Adapter.llblgen.v3.EntityClasses.VwIssueEntity,System.Boolean]' to type 'System.Collections.Generic.List1[SBH.Dal.Adapter.llblgen.v3.EntityClasses.VwIssueEntity]'.

Anthony
User
Posts: 155
Joined: 04-Oct-2006
# Posted on: 11-Jan-2016 12:45:57   

Can anyone help?

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 11-Jan-2016 16:58:23   

Please refer to the documentation of the Enumerable.Select() method, here: https://msdn.microsoft.com/library/bb548891(v=vs.100).aspx

The Select method should return the type of the enumerated collection rather than Boolean in your case.

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 12-Jan-2016 06:47:12   

My two cents: I think you are missing a .ToList() call at the end:

IssueList = IssueList.Select(Function(x) x.IssueStatusId = 4 AndAlso Now.Subtract(x.DateModified).TotalDays < 5).ToList()

... as you are trying to return a List, but the .Select per-se is returning an IQueryable. BTW, this is not an exception from LLBLGen but Linq2Objects.

David Elizondo | LLBLGen Support Team
Anthony
User
Posts: 155
Joined: 04-Oct-2006
# Posted on: 12-Jan-2016 16:35:25   

Still same error...

                  oUserIssues = CType(item.Value, EntityCollection(Of VwIssueEntity))

                    Dim IssueList As List(Of VwIssueEntity) = oUserIssues.ToList()

                    IssueList = IssueList.Select(Function(x) x.IssueStatusId = 4)
Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 12-Jan-2016 17:14:35   

Please check my previous reply,and let us know if it works for you.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 12-Jan-2016 18:10:45   

Anthony wrote:

Still same error...

                  oUserIssues = CType(item.Value, EntityCollection(Of VwIssueEntity))

                    Dim IssueList As List(Of VwIssueEntity) = oUserIssues.ToList()

                    IssueList = IssueList.Select(Function(x) x.IssueStatusId = 4)

This is a generic .NET question and has nothing to do with LLBLGen Pro as you run .Select in memory

IssueLIst is of type List<VwIssueEntity>, and .Select() returns an IEnumerable<VwIssueEntity>, not a List. You have to append the ToList to the .Select as David showed:

Dim IssueList As List(Of VwIssueEntity) = oUserIssues.DefaultView().ToList()
IssueList = IssueList.Select(Function(x) x.IssueStatusId = 4 AndAlso Now.Subtract(x.DateModified).TotalDays < 5).ToList()
Frans Bouma | Lead developer LLBLGen Pro