Nested .Union() & .Concat() - NotSupportedException

Nested .Union() & .Concat() - NotSupportedException

Postby Nahmis » Wed 24 Feb 2010 22:25

We're having an issue that results in the following stack:

Code: Select all
   Specified method is not supported.
   at Devart.Data.Linq.Provider.Query.ao.a(SqlNode A_0, f A_1, SqlExpression A_2, Boolean A_3)
   at Devart.Data.Linq.Provider.Query.bf.b.a(w A_0)
   at Devart.Data.Linq.Provider.Query.SqlVisitor.a(f A_0)
   at Devart.Data.Linq.Provider.Query.SqlVisitor.a(d A_0)
   at Devart.Data.Linq.Provider.Query.SqlVisitor.a(j A_0)
   at Devart.Data.Linq.Provider.Query.SqlVisitor.e(w A_0)
   at Devart.Data.Linq.Provider.Query.bf.b.a(w A_0)
   at Devart.Data.Linq.Provider.Query.SqlVisitor.a(f A_0)
   at Devart.Data.Linq.Provider.Query.bf.a(SqlNode A_0, SqlFactory A_1, Boolean& A_2)
   at Devart.Data.Linq.Provider.DataProvider.a(e A_0, Type A_1, SqlNode A_2, IList`1 A_3)
   at Devart.Data.Linq.Provider.DataProvider.a(Expression A_0)
   at Devart.Data.Linq.Provider.DataProvider.i(Expression A_0)
   at Devart.Data.Linq.DataQuery`1.i()


This is as small as I could get the example still showing the error (Normal LinqPad .Dump() method):

Code: Select all
var DB = new DataContext(ConnectionString);
                     
var a = from d in DB.Documents
       join spd in DB.SitePacketDocuments on d equals spd.Document
       where spd.Id == 1
       select new {SiteId = 5, DocId = d.Id};
var b = from d in DB.Documents
       select new {SiteId = 5, DocId = d.Id};

var u = a.Concat(b);
DB.GetCommand(u).CommandText.Dump(); //Ok here

var sitedocs = (from d in DB.Documents
            join did in u on d.Id equals did.DocId
            select new { did.SiteId, DocumentId = d.Id });
DB.GetCommand(sitedocs).CommandText.Dump(); //Not so ok


As far as I can tell, placing a where clause on any joined table in the union causes the Specified method is not supported error, if you change the top query to:

Code: Select all
var a = from d in DB.Documents
       join spd in DB.SitePacketDocuments on d equals spd.Document
       where d.Id == 1
       select new {SiteId = 5, DocId = d.Id};


It works fine, but of course we're joining because we need the where clause elsewhere. I'd be happy to place this in a small test project if you have trouble reproducing, but this has become a very urgent issue for us (unexpected client deliverable), we would appreciate a reply asap. Thanks for the help guys, your support is superb.

Almost forgot, this is on the latest beta 5.55.97 (this behavior has existed for a long time, but we've been able to bypass around it until now).
Nahmis
 
Posts: 30
Joined: Mon 13 Jul 2009 21:38

Postby AndreyR » Thu 25 Feb 2010 11:15

Thank you for the report, I have reproduced the problem.
I will let you know about the results of our investigation.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Postby Nahmis » Wed 03 Mar 2010 14:37

Any update on a fix for this issue?

I need to know if we need to start going through and batching results in 1000s and using .Contains() to work about this as it will take some time to switch over...hoping there's a way to get a fix for this sooner though, would save a lot of throw-away work.

Thanks
Nahmis
 
Posts: 30
Joined: Mon 13 Jul 2009 21:38

Postby AndreyR » Fri 05 Mar 2010 14:21

We have fixed the problem. The fix will be included in the nearest build.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Postby Nahmis » Fri 12 Mar 2010 12:26

Andrey - When will this Build be available? We're at our deadline and must start re-writing to batch all these operations if there isn't a fix available...hoping there's some way to get a build ASAP.

I'm hoping we don't have to write a bunch of extra code to work around a bug you guys have already fixed, would be nice to get even just the bare DLLs so we can run this thing, is this possible?
Nahmis
 
Posts: 30
Joined: Mon 13 Jul 2009 21:38

Postby AndreyR » Fri 12 Mar 2010 12:39

Please contact me via e-mail (support * devart * com) and point out your license number. We will send you an internal build.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Postby Nahmis » Mon 15 Mar 2010 15:08

We had to re-write the application to work around this bug since we still have not received the build. In the future could you alert us it will be a few days at least? We waited for the build hoping it would resolve it, but since we never received anything, had to work the weekend to cope with the bug.

This is becoming a major pain point for us, since we can't do any sort of complex querying from multiple sources. When will a build be available that resolves this?
Nahmis
 
Posts: 30
Joined: Mon 13 Jul 2009 21:38

Postby Nahmis » Tue 16 Mar 2010 20:33

Is there any update on this? We are still awaiting a fix and haven't received any response on here on in email...
Nahmis
 
Posts: 30
Joined: Mon 13 Jul 2009 21:38

Postby AndreyR » Thu 18 Mar 2010 14:32

We have replied you by e-mail.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16


Return to dotConnect for Oracle