entity framework - Linq woes - A CollectionType is required -


why doesn't linq query work?

i suspect may have lazy loading. seems work in linqpad.

public ilist<paymentdto> getdocumentpayments(int documentid, bool? allowrepeatpayments, byte[] paymentstatuses, int[] paymentmethods)     {         using (var ctx = objectcontextmanager<mydatacontext>.getmanager("mydatacontext"))         {             var payments = new list<paymentdto>();              var ps = new list<byte>();                     if (paymentstatuses != null)             {                 ps = paymentstatuses.tolist();             }              var pm = new list<int>();             if (paymentmethods != null)             {                 pm = paymentmethods.tolist();             }              iqueryable<payment> data =                     payment in ctx.objectcontext.documents.oftype<payment>()                                           ps.contains(payment.status) &&                         pm.contains(payment.method) &&                        payment.documentid == documentid &&                        (allowrepeatpayments == null || payment.allowrepeatpayments == allowrepeatpayments)                    orderby payment.id                    select payment;              foreach (var p in data) // fails here             {                 payments.add(readdata(p));             }              return payments;         }     } 

throws error: a collectiontype required. parameter name: collectiontype.

constructs (allowrepeatpayments == null || payment.allowrepeatpayments == allowrepeatpayments) can funny thing query. try happens when do:

if (allowrepeatpayments.hasvalue) {     data = data.where(p => p.allowrepeatpayments == allowrepeatpayments); } 

you can same paymentstatuses , paymentmethods.

it may solve problem, if not, improvement anyway, because condition added when necessary , sql not cluttered when isn't.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c++ - Using OpenSSL in a multi-threaded application -

All overlapping substrings matching a java regex -