Search found 12 matches

by PangoChris
Wed 10 Feb 2010 20:28
Forum: LinqConnect (LINQ to SQL support)
Topic: dotConnect Oracle 5.55beta wrestles with INSERT
Replies: 2
Views: 1570

dotConnect Oracle 5.55beta wrestles with INSERT

The new version of dotConnect for Oracle has introduced a LINQ to SQL bug in which calling SubmitChanges() to insert multiple rows into the same table crashes.

I don't have time to isolate and produce sample code, but dbMonitor tells the story and reverting to the previous version fixes the issue.

The table being inserted into has a standard primary key that gets autogenerated off of a number sequence. The correct properties have been set for the table in the LINQ to SQL model, as it worked prior to the latest dotConnect version. When SubmitChanges() is called with more than one new record to be inserted into the table, according to dbMonitor, the *first* INSERT works as expected:

INSERT INTO table (field1, field2) VALUES(:p1, :p2) RETURNING primaryKey INTO :ret1

The database correctly returns into :ret1, say 100.

The *second* INSERT bombs, as it unwisely tries to reuse the return value from the *first* INSERT as the primary key for the second record. Yikes. So this happens:

INSERT INTO table (field1, field2, primaryKey) VALUES(:p1, :p2, :p3) RETURNING primaryKey INTO :ret1

and dotConnect is setting :p3 to 100, so Oracle explodes because obviously that conflicts with the record we just tried to insert a second ago.

Hope that's enough info to reproduce. I was unable to persuade my client that their database already has all the rows they'll ever need.
by PangoChris
Fri 15 Jan 2010 20:35
Forum: Entity Developer
Topic: Cannot access the .edps file as it is used by another proces
Replies: 24
Views: 8627

We're getting much closer.


The new version fixes the issue for us. When launching Entity Developer from Visual Studio and saving changes, everything works as expected. Thank you.

But...

We use Visual Source Safe (sigh... I know, I know) and now we get the edps message when Undoing a Check-Out on the LQML file. The check-out is indeed undone, but our data context designer file gets nuked locally and replaced with the edps error message, even though Entity Developer isn't running at the time.

Here's how we reproduce this:

1. From Visual Studio 2008 using a project which is checked in to Source Safe, right click a LQML file (DataContext.lqml in our case) and select "Check Out for Edit". This will check out the lqml file and its associated files (.Designer.vb, .edps, .lqml.view, and .vb) and make them writable. (Source Safe sets the read only file attribute on files that aren't checked out)

2. Double click the LQML file to launch Entity Developer. Make a change such as adding a new table to the data context from the database. Save, then close Entity Developer.

Everything's good so far. The correct changes have been made to the lqml and associated files. In fact, if I check these changes into Source safe by right clicking on the lqml file and selecting "Check In", everything will work. The files will be checked in and the local copies will have their read only attribute set. But if we don't like the changes we've made and instead...

3. Right click the LQML file and select "Undo Checkout..." and when prompted about losing our changes select "Yes to All", the checkout will be undone but now our DataContext.Designer.vb file's contents have been trashed and replaced with:
'Custom tool 'DevartLinqToSqlGenerator' failed.
' - Access to the path 'C:\CBP_Apps\Data\DataContext.edps' is denied.
'

Raising the question as to why DevartLinqToSqlGenerator has been run on an Undo Checkout operation.

Fortunately, this only affects the local copy of the designer file. The Undo Checkout command successfully reaches Source Safe, and all the files except the .Designer.vb file end up with their readonly attributes set. Visual Studio doesn't know that anything went wrong, as it displays the designer file in Solution Explorer with the source safe lock icon, indicating that it thinks it's readonly (which is incorrect) and not checked out (which is correct).

The workaround is to right click the LQML file again, and this time select "Get" which will try to get the latest version of the LQML file and its associated files, and in doing so detect that the designer file is writable (which it shouldn't be) and then prompt to restore the file from Source Safe, which is what we want.
by PangoChris
Mon 14 Dec 2009 21:18
Forum: Entity Developer
Topic: Cannot access the .edps file as it is used by another proces
Replies: 24
Views: 8627

Just wanted to chime in that we're getting hit by this too in Entity Developer 2.50.51 using dotConnect for Oracle for LINQ to SQL models, and have a different workaround in place.

The Run Custom Tool workaround didn't work for us, instead we have to run Entity Developer outside of Visual Studio by double clicking the lqml file from Windows Explorer. After we make changes to our model in Entity Developer we do the two step process of selecting Save to save the model and then selecting Generate to re-generate the code in the designer file. (I'm under the impression that when working correctly, Entity Developer automatically does the re-generation step when Saving if Entity Developer was launched from Visual Studio.)

Thought I'd share that in case it helps anyone else until there's a fix.
by PangoChris
Mon 26 Oct 2009 20:25
Forum: dotConnect for Oracle
Topic: ASP Conflict between older installed dotConnect & newer ver.
Replies: 5
Views: 5740

Yes!

That solves the problem, thank you very much. This was approaching show stopper for us. I just finished testing it on the sample console app and the actual web app, both are now working great on multiple machines with old dotConnect versions installed, and the old DLLs aren't being loaded.


Thanks again!
Chris
by PangoChris
Fri 23 Oct 2009 21:45
Forum: dotConnect for Oracle
Topic: ASP Conflict between older installed dotConnect & newer ver.
Replies: 5
Views: 5740

I have a few more clues.

I was wrong in the above post, if I manually uninstall the older Devart.Data.dll and Devart.Data.Oracle.dll from the GAC then I get an exception because .NET can't find the older version number (It's when I use the uninstaller that the app runs fine). I turned on assembly binding logging, and this shows that System.Data is the one who is looking for Devart.Data.Oracle.dll with the older version 5.25.44.0, which when found in turn loads Devart.Data.dll 5.0.8.0.

Here's what's thrown when I manually uninstall the two older DLLs from the GAC and run the app, showing that the newer Devart.Data.Linq.dll's calls into System.Data.dll result in System.Data.dll attempting to load the older Devart.Data.Oracle.dll:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701' ---> System.IO.FileLoadException: Could not load file or assembly 'Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701'

Assembly manager loaded from: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable C:\LinqExistsTest\LinqExistsTest\bin\Debug\LinqExistsTest.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701
(Fully-specified)
LOG: Appbase = file:///C:/LinqExistsTest/LinqExistsTest/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Publisher policy file is found at C:\WINDOWS\assembly\GAC_MSIL\policy.5.25.Devart.Data.Oracle\5.25.44.0__09af7300eec23701\policy.5.25.Devart.Data.Oracle.config.
LOG: Publisher policy file redirect is found: 5.25.44.0 redirected to 5.25.44.0.
LOG: ProcessorArchitecture is locked to MSIL.
LOG: Post-policy reference: Devart.Data.Oracle, Version=5.25.44.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL
LOG: Attempting download of new URL file:///C:/LinqExistsTest/LinqExistsTest/bin/Debug/Devart.Data.Oracle.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.RuntimeType.PrivateGetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.Type.GetType(String typeName)
at System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow)
at Devart.Data.Linq.Provider.DataProvider.get_ProviderFactory()
at Devart.Data.Linq.Provider.DataProvider.CreateConnection()
at Devart.Data.Oracle.Linq.Provider.OracleDataProvider.CreateConnection()
at Devart.Data.Linq.Provider.DataProvider.a(e A_0, Object A_1)
at Devart.Data.Linq.DataContext.a(Object A_0, MappingSource A_1, Type A_2)
at Devart.Data.Linq.DataContext..ctor(String connectionString, MappingSource mapping)
at CBP.Data.DataContext..ctor(String connection)
at LinqExistsTest.Module1.test()
at LinqExistsTest.Module1.Main()
by PangoChris
Fri 23 Oct 2009 18:04
Forum: dotConnect for Oracle
Topic: ASP Conflict between older installed dotConnect & newer ver.
Replies: 5
Views: 5740

I've got a better handle on what's going on now, as I can reproduce this with a console app on my XP workstation, removing ASP and the production server from the equation, and a lot of unnecessary details from the above post =)

You're right, old assemblies are indeed getting loaded into the process, but alongside new assemblies. And yes, I have Local Copy set to true for all references.

At the time of the exception, the app has two different versions of Devart.Data.dll and Devart.Data.Oracle.dll loaded. I used Sysinternals' Process Explorer to see their locations, and these second copies are the older ones located in the GAC.

Stepping through with the debugger while watching Process Explorer, I can see that the app immediately loads the four Devart DLLs that are in its bin directory, as it should. Once the LINQ query is executed though, the two older DLLs from the GAC get loaded. This suggests to me that at least one of the references within one of the Devart DLLs to Devart.Data.dll or Devart.Data.Oracle.dll is choosing whatever is in the GAC over what's sitting alongside it, even though what's sitting alongside it has the correct version number and what's in the GAC doesn't.

On my XP Pro SP3 workstation I currently have 5.25.44.0 installed (so in the GAC) and my console app compiled against 5.25.49.0 DLLs which reside in the exe's directory. All the references have SpecificVersion set to true. When the app starts, these are the Devart DLLs & versions it has loaded, all from the exe's directory:

Devart.Data.dll 5.0.11.0
Devart.Data.Linq.dll 1.0.22.0
Devart.Data.Oracle.dll 5.25.49.0
Devart.Data.Oracle.Linq.dll 1.0.22.0

and when the LINQ query runs, these guys from the GAC join the party:

Devart.Data.dll 5.0.8.0
Devart.Data.Oracle.dll 5.25.44.0

and then the exception is thrown, as you'd expect from the interaction between older and newer assemblies.

As soon as I remove the Devart DLLs from the GAC the application runs.

As you can see, I have 5.25.44.0 installed on my workstation as opposed to 5.25.42.0 on our servers, and with the same results. It really does seem to be as simple as a reference preferring GAC over what's in its own directory and ignoring the version numbers.

(Even though I'm using a console app now to simplify the situation, I've gone back and verified that everything I just said applies to the ASP app on the server too.)


Thank you for looking into this! I really appreciate your responsiveness. Let me know if you need any more info.
by PangoChris
Wed 21 Oct 2009 23:04
Forum: dotConnect for Oracle
Topic: ASP Conflict between older installed dotConnect & newer ver.
Replies: 5
Views: 5740

ASP Conflict between older installed dotConnect & newer ver.

Our production web server has dotConnect for Oracle 5.25.42 installed and is being used by several ASP .NET applications for its LINQ to SQL features. These apps are finished and in production. That version of dotConnect was the newest at the time these apps were put into production.

Since then, a new ASP .NET application has been written and uses the latest version of dotConnect, yesterday's 5.25.49. This application depends on bugfixes from the last two dotConnect versions. This application is also using dotConnect for its LINQ to SQL features.

We are unable to run the new application, using the new dotConnect, on the production server, which has the old dotConnect installed. Obviously there's a lot of potential for conflict there, but I believe we have things setup correctly for such a situation and I'll go into detail there. The nature of the resulting exceptions makes me suspect a dotConnect problem, though I'm hoping there's just something we've forgotten to do.

First, here's details on the setup:

- dotConnect 5.25.42 was installed on the server using the installer, so all its DLLs are in the GAC. The ASP .NET apps that were written against this version expect these in the GAC, and they are working fine.

- dotConnect 5.25.49 (and .44 prior to it, with the same results) was used to write the new ASP .NET app. That app is configured to deploy this new dotConnect version to its bin directory so that it doesn't depend on which dotConnect version is in the GAC on the server. We did this by including the file licenses.licx in the project as an Embeddable Resource with the contents "Devart.Data.Oracle.OracleConnection, Devart.Data.Oracle". The project references Devart.Data, Devart.Data.Linq, Davart.Data.Oracle, and Devart.Data.Oracle.Linq, and each reference has Copy Local set to True.

Once deployed, the new application throws an exception on *almost* every attempted database query. Different queries result in different exceptions, but they all come from within the dotConnect libaries. I've isolated the problem by creating a fresh ASP .NET 3.5 web app that just does one query. This app uses the new dotConnect and deploys it to its bin dir and has the license file setup just as I described for the full app. I also get the same results when running a sample Console app on the server using these same LINQ queries.

This code will work:

Code: Select all

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	Dim dc As New DataContext1.DataContext1()
	Dim ws = (From w In dc.Webschedules).FirstOrDefault()
	Label1.Text = ws.Id.ToString() & " " & ws.Codevalue
End Sub
This code throws System.InvalidCastException: Unable to cast object of type 'Devart.Data.Oracle.OracleParameter' to type 'Devart.Data.Oracle.OracleParameter':

Code: Select all

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	Dim dc As New DataContext1.DataContext1()
	Dim ws = (From w In dc.Webschedules Where w.ID = 1).FirstOrDefault()
	Label1.Text = ws.Id.ToString() & " " & ws.Codevalue
End Sub
Stack Trace:

[InvalidCastException: Unable to cast object of type 'Devart.Data.Oracle.OracleParameter' to type 'Devart.Data.Oracle.OracleParameter'.]
Devart.Data.Oracle.Linq.Provider.OracleDataProvider.ApplyParameter(DbParameter parameter, String name, ParameterDirection direction, Boolean sourceColumnNullMapping, ProviderType providerType, Type clrType, Object parameterValue) +154
Devart.Data.Linq.Provider.DataProvider.a(c A_0, f A_1, Object[] A_2, Object[] A_3, Object A_4) +297

[LinqCommandExecutionException: Error on executing DbCommand.]
Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException(String message, Exception e) +60
Devart.Data.Linq.Provider.DataProvider.a(c A_0, f A_1, Object[] A_2, Object[] A_3, Object A_4) +1597
Devart.Data.Linq.Provider.DataProvider.a(c A_0, Object[] A_1) +64
Devart.Data.Linq.Provider.DataProvider.h(Expression A_0) +81
Devart.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +51
System.Linq.Queryable.FirstOrDefault(IQueryable`1 source) +269
DevartTestSite._Default.Page_Load(Object sender, EventArgs e) in C:\DevartTestSite\Default.aspx.vb:6
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627


As soon as we uninstall dotConnect 5.25.42 from the server the sample applications work correctly. Installing 5.25.42 back makes them crash.

I've verified that this occurs on three different servers, all Win 2003 / IIS with dotConnect 5.25.42 installed. Deploying the sample app using 5.25.44 also results in the same crash.

Obviously a workaround is to uninstall 5.25.42 from the server and change the existing apps to use local copies, or upgrade them to use the latest dotConnect version, but those apps are already tested and in production and we don't want to be changing them and risk regressions.

Our biggest concern is that simply having dotConnect installed on a server prevents us from deploying applications using newer versions, and we don't want to be in the game of upgrading / redeploying all production apps every time one new app needs to upgrade.

Yikes, that was much much more typing than I hoped to do =)

Thanks,
Chris
by PangoChris
Thu 15 Oct 2009 22:54
Forum: LinqConnect (LINQ to SQL support)
Topic: "Constant cannot be sequences" exception
Replies: 9
Views: 5975

Thank you!
by PangoChris
Thu 08 Oct 2009 21:50
Forum: LinqConnect (LINQ to SQL support)
Topic: NotSupportedException when testing a Navigation Prop for NUL
Replies: 2
Views: 2015

NotSupportedException when testing a Navigation Prop for NUL

The following query throws a System.NotSupportedException, due to testing if p.Supplier is null:

Code: Select all

var results = from p in dc.Products
              select new
              {
                  ProductName = p.ProductName,
                  SupplierContactName = (p.Supplier != null ? p.Supplier.ContactName : "")
              };
I can make this query work by testing the foreign key for null instead of testing the navigation property:

Code: Select all

var results = from p in dc.Products
              select new
              {
                  ProductName = p.ProductName,
                  SupplierContactName = (p.SupplierID != null ? p.Supplier.ContactName : "")
              };

Microsoft's LINQ to SQL is able to do both forms of the query. I'm using dotConnet for Oracle v 5.25.44, VS 2008 Pro.

Thanks,
Chris


Stack Trace:
Unhandled Exception: System.NotSupportedException: Specified method is not supported.
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(ag A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0, SqlNode A_1)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(l A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(ac A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(ao A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(bo A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(a0 A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(aw A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(aw A_0)
at Devart.Data.Linq.Provider.Query.SqlVisitor.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.SqlFormatter.a(SqlNode A_0, CommandType& A_1)
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.h(Expression A_0)
at Devart.Data.Linq.DataQuery`1.i()
by PangoChris
Thu 08 Oct 2009 19:53
Forum: LinqConnect (LINQ to SQL support)
Topic: linq to sql generated query
Replies: 5
Views: 3347

I just wanted to confirm for anyone else reading this that upgrading from dotConnect for Oracle v 5.25.42 to 5.25.44. fixes the problem of inner joins being generated instead of left outer joins. It would be nice if the dotConnect revision histories listed more bugfixes, as I (and others, I suspect) only want to go through the trouble of upgrading if there's a relevant fix. In this case, the only reason I upgraded to the new version was to see if join generation was still broken before posting a bug report on the off chance that it didn't make its way into the public revision history. I shouldn't have to guess at revisions like that.

Anyway, left outer join is generated if the foreign key is nullable and inner join is generated otherwise. Good job.


Chris
by PangoChris
Mon 21 Sep 2009 23:34
Forum: LinqConnect (LINQ to SQL support)
Topic: "Constant cannot be sequences" exception
Replies: 9
Views: 5975

"Constant cannot be sequences" exception

I have a query which fails for a reason I don't understand. I can make it work with a tiny change, but that change should be no business of the LINQ query and is at odds with my application's structure.

The query breaks when one of the tables is referenced from a variable instead of referenced directly from the datacontext, but it shouldn't matter because as this example demonstrates in both cases it's the exact same object:

Code: Select all

' this query will work
Dim results = From p In dc.Payments _
			     Where Not (From t In dc.OnlineTransactions Where t.TxRefNum = p.TxRefNum).Any()
Console.WriteLine("result count: " & results.Count())

' this query will throw:
' "System.NotSupportedException: Constant cannot be sequences."
Dim allTransactions = dc.OnlineTransactions
Dim results2 = From p In dc.Payments _
			      Where Not (From t In allTransactions Where t.TxRefNum = p.TxRefNum).Any()
Console.WriteLine("result count: " & results2.Count())
This means that this query can't be written without direct access to the data context, which is a problem since my application is tiered and the code that executes this query doesn't have access to the datacontext, just the relevant table objects.

(The query above is similar to a portion in my much larger query, I whittled the problem down to this repeatable example.)

Here's the stack trace:

Unhandled Exception: System.NotSupportedException: Constant cannot be sequences.
at Devart.Data.Linq.Provider.Query.bk.a(SqlNode A_0)
at Devart.Data.Linq.Provider.Query.bk.a(Expression A_0, LambdaExpression A_1)
at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.a(Expression A_0, LambdaExpression A_1, Boolean A_2)
at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.d(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.a(UnaryExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.d(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.a(Expression A_0, LambdaExpression A_1)
at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.a(Expression A_0, LambdaExpression A_1, SqlNodeType A_2, Type A_3)
at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.i(Expression A_0)
at Devart.Data.Linq.Provider.DataProvider.a(Expression A_0)
at Devart.Data.Linq.Provider.DataProvider.h(Expression A_0)
at Devart.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.Count[TSource](IQueryable`1 source)

I'm using version 1.0.20.0 of Devart.Data.Linq and querying an Oracle database.


Thank you.
by PangoChris
Mon 14 Sep 2009 20:17
Forum: LinqConnect (LINQ to SQL support)
Topic: Entity Developer: Association Editor / Project Explorer bug
Replies: 1
Views: 1986

Entity Developer: Association Editor / Project Explorer bug

I've come across two reproducible bugs in the Entity Developer for dotConnect dealing with associations. I am using version 2.20.37 Standard Edition to edit an Oracle DataContext, the language is VB and Visual Studio is 2008 Professional.

When bringing up the Association Editor dialog by right clicking an entity and selecting "Add Association", the Project Explorer tool window immediately adds a navigational property to the entity's class in the hierarchy. If you Cancel out of the Association Editor dialog then this non-existent navigational property remains in the Project Explorer, and also on the main diagram under the entity's Navigational Properties. This can be repeated and phantom properties will keep piling up in Project Explorer and on the diagram, even though they don't exist.

The second bug is similar. After successfully adding an association with the Association Editor dialog the Project Explorer window adds a duplicate property to each of the two associated classes. The property is a duplicate of the class' association property. For example, the Company class would show a second "ID" property and the Employee class would show a second "CompanyID" property. These duplicates don't appear on the main diagram, just the Project Explorer.

Thanks,
Chris