Hi Guys, I'm evaluating your brand new provider together with the of Entity Framework 6 RC.
I used docConnect for Oracle during my last 4 years with success and now I would like to upgrade.
When I try to create a new model (Data First) selecting only few (2) tables if I choose Entity Framework < 6 everything works fine, in case of Entity Framework 6 the constraint between the two tables selected is not added and, consequently, no Navigation Property is created!
Is this a tremendous bug or I'm forgetting some steps?
Thanks you guys,
mM
Search found 9 matches
- Sat 21 Sep 2013 13:09
- Forum: Entity Developer
- Topic: No Costraints added with Entity Framework 6
- Replies: 1
- Views: 1335
- Tue 27 Dec 2011 13:51
- Forum: Entity Framework support
- Topic: Index Hint
- Replies: 8
- Views: 2017
- Tue 06 Dec 2011 12:51
- Forum: dotConnect for Oracle
- Topic: Oracle LOB Fetch Size
- Replies: 6
- Views: 9703
Oracle LOB Fetch Size
Hi Guys,
in a particular case of our infrastructure we need to manage a DB containing all our cached reports in order to quickly retrieve the information for our customers.
Our cache db is a very stupid single table DB, one table with one PK (Guid / raw(16)) and one BLOB column (min 5 KB, max 2 MB, avg 200 KB).
Our access strategy against this DB is:
- read (24/7)
- ins/upd (3 hours per day)
Taking apart all the pure DB performance considerations such as Partitioning, SECUREFILES vs BASIC BLOB, IOT, LOB Chuncking, Dedicated Tablespace Block Size and so on, we noticed that while we are inserting/updating very frequently, with an high degree of parallelism, the performances goes down and investigating the causes we found that the 92% of the time used by DB is related to this wait event: "SQL*Net more data from client".
This means that the DB has already received the update/insert command but it is waiting for receive the whole LOB (because the lobs are sent from client to server and viceversa chunked).
I suppose that this should happen also during read phase but the read phase is spreaded during all the 24 hours so it is less impacted by this wait event.
In our previous projects, we already addressed this problem using the Oracle ODP.NET and setting a command parameter (InitialLOBFetchSize), this parameter sets the amount of byte sent for each chunck (or something like that).
My question is: Exists something similar that we can use in devart dotConnect for Oracle that works using EntityFramework?
If you need we can provide a solution that reproduce this Oracle wait event.
Thanks in advance,
Monducci Marco
in a particular case of our infrastructure we need to manage a DB containing all our cached reports in order to quickly retrieve the information for our customers.
Our cache db is a very stupid single table DB, one table with one PK (Guid / raw(16)) and one BLOB column (min 5 KB, max 2 MB, avg 200 KB).
Our access strategy against this DB is:
- read (24/7)
- ins/upd (3 hours per day)
Taking apart all the pure DB performance considerations such as Partitioning, SECUREFILES vs BASIC BLOB, IOT, LOB Chuncking, Dedicated Tablespace Block Size and so on, we noticed that while we are inserting/updating very frequently, with an high degree of parallelism, the performances goes down and investigating the causes we found that the 92% of the time used by DB is related to this wait event: "SQL*Net more data from client".
This means that the DB has already received the update/insert command but it is waiting for receive the whole LOB (because the lobs are sent from client to server and viceversa chunked).
I suppose that this should happen also during read phase but the read phase is spreaded during all the 24 hours so it is less impacted by this wait event.
In our previous projects, we already addressed this problem using the Oracle ODP.NET and setting a command parameter (InitialLOBFetchSize), this parameter sets the amount of byte sent for each chunck (or something like that).
My question is: Exists something similar that we can use in devart dotConnect for Oracle that works using EntityFramework?
If you need we can provide a solution that reproduce this Oracle wait event.
Thanks in advance,
Monducci Marco
- Tue 12 Apr 2011 13:28
- Forum: Entity Framework support
- Topic: Unpredictable order for UPDATE statements during SaveChanges
- Replies: 2
- Views: 1462
- Mon 11 Apr 2011 16:40
- Forum: Entity Framework support
- Topic: Unpredictable order for UPDATE statements during SaveChanges
- Replies: 2
- Views: 1462
Unpredictable order for UPDATE statements during SaveChanges
Hi guys, I have a problem related to the order of the update statements during the SaveChanges() command. I try to explain further with a simple example.
We have 2 tables:
The data present into DB are:
These are our c# steps:
1. Retrieve from DB the person with PersonID = 1 (1 row retrieved) .
2. Load the Person's NavigationProperty PersonAliases (4 rows retrieved).
3. Get PersonAlias with PersonAliasId = 102 and set its PriorityNumber = 99.
4. Get PersonAlias with PersonAliasId = 104 and set its PriorityNumber = 2.
5. Context.Persons.ApplyChanges(p);
6. Context.SaveChanges();
At this point, sometimes, we receive an error from DB due to the XAK1_PersonAliases unique index!
Using dbMonitor we understood that the produced update statements are 2 as expected but the order is unpredictable, sometimes the first one is the update of the PersonAlias with PersonAliasID=102, sometimes the 104 and this is the key point!
We know that EF has in charge to detect the correct order of the statements following the relations between tables and thanks god for it, it works perfectly in case of insert and delete but in case of update?
There is a way in wich we can force the order of these update statements?
If not, any other workaround?
Finally, at this link you can find a thread for a similar problem, unfortunately already open!
Thanks very much guys for the support!
mM
We have 2 tables:
- Persons
PersonId number(10) [PK]
FiscalCode varchar2(30)
- PersonAliases
PersonAliasesId number(10) [PK]
PersonId number(10) [AK1,1] [FK with Persons]
Name varchar2(16)
PriorityNumber Number(2) [AK1,2]
The data present into DB are:
- Persons (1 row)
1 - CF001
- PersonAliases (4 rows)
101 - 1 - Luc - 1
102 - 1 - Lucas - 2
103 - 1 - Luk - 3
104 - 1 - Luke - 4
These are our c# steps:
1. Retrieve from DB the person with PersonID = 1 (1 row retrieved) .
2. Load the Person's NavigationProperty PersonAliases (4 rows retrieved).
3. Get PersonAlias with PersonAliasId = 102 and set its PriorityNumber = 99.
4. Get PersonAlias with PersonAliasId = 104 and set its PriorityNumber = 2.
5. Context.Persons.ApplyChanges(p);
6. Context.SaveChanges();
At this point, sometimes, we receive an error from DB due to the XAK1_PersonAliases unique index!
Using dbMonitor we understood that the produced update statements are 2 as expected but the order is unpredictable, sometimes the first one is the update of the PersonAlias with PersonAliasID=102, sometimes the 104 and this is the key point!
We know that EF has in charge to detect the correct order of the statements following the relations between tables and thanks god for it, it works perfectly in case of insert and delete but in case of update?
There is a way in wich we can force the order of these update statements?
If not, any other workaround?
Finally, at this link you can find a thread for a similar problem, unfortunately already open!
Thanks very much guys for the support!
mM
- Mon 04 Apr 2011 08:28
- Forum: Entity Framework support
- Topic: ORA-01747: invalid user.table.column, table.column, or colum
- Replies: 5
- Views: 3808
- Thu 31 Mar 2011 18:28
- Forum: Entity Framework support
- Topic: ORA-01747: invalid user.table.column, table.column, or colum
- Replies: 5
- Views: 3808
ORA-01747: invalid user.table.column, table.column, or colum
Hi guys, we've got a serious problem introduced during the dotConnect upgrade from version 6.10.111 to 6.10.126.
My scenario is the following:
We are using the Self Tracking Entities model against an Oracle 11g2 db.
All our oracle tables have the column ORA_ROWSCN setted as concurrencyToken (yes, I know that the oracle pseudocolumn ora_rowscn doesn't fits all the concurrencyToken behaviours but I accepted it).
We have 2 tables: A and B, the pk of A is also the pk of B and B is related to A with a fk (A is parent of B).
We read B and A with a Linq to entities, we updated B, we attached the 2 entities to the context and finally we saved changes.
With the version 6.10.111 all works fine.
Whit the version 6.10.126 we receive this error:
{"ORA-06550: line 5, column 8:\nPL/SQL: ORA-01747: invalid user.table.column, table.column, or column specification\nORA-06550: line 4, column 1:\nPL/SQL: SQL Statement ignored"}
and using the "DBMonitor" tool we captured the statement in error:
DECLARE
updatedRowid ROWID;
BEGIN
UPDATE TABLE_A
SET ORA_ROWSCN = ORA_ROWSCN
WHERE UIDID = :p0 AND ORA_ROWSCN = :p1
RETURNING ROWID INTO updatedRowid;
OPEN :outParameter FOR SELECT ORA_ROWSCN FROM TABLE_A WHERE ROWID = updatedRowid;
END;
For me it's clear, with this new version, the devart provider try to update the table A even if it doesn't have any changes!! Doing so the provider doesn't treat well the concurrencyToken, I think this is the mess!!!
The same "c# code" with the provider 6.10.111 doesn't fail because it doesn't try to update table A !!! and it is correct because the table A doesn't have any change !!!
Please, let us know if you are able to reproduce the error (the usecase is very simple) otherwise we could sent you a test solution but this could be long and complex for us....
My scenario is the following:
We are using the Self Tracking Entities model against an Oracle 11g2 db.
All our oracle tables have the column ORA_ROWSCN setted as concurrencyToken (yes, I know that the oracle pseudocolumn ora_rowscn doesn't fits all the concurrencyToken behaviours but I accepted it).
We have 2 tables: A and B, the pk of A is also the pk of B and B is related to A with a fk (A is parent of B).
We read B and A with a Linq to entities, we updated B, we attached the 2 entities to the context and finally we saved changes.
With the version 6.10.111 all works fine.
Whit the version 6.10.126 we receive this error:
{"ORA-06550: line 5, column 8:\nPL/SQL: ORA-01747: invalid user.table.column, table.column, or column specification\nORA-06550: line 4, column 1:\nPL/SQL: SQL Statement ignored"}
and using the "DBMonitor" tool we captured the statement in error:
DECLARE
updatedRowid ROWID;
BEGIN
UPDATE TABLE_A
SET ORA_ROWSCN = ORA_ROWSCN
WHERE UIDID = :p0 AND ORA_ROWSCN = :p1
RETURNING ROWID INTO updatedRowid;
OPEN :outParameter FOR SELECT ORA_ROWSCN FROM TABLE_A WHERE ROWID = updatedRowid;
END;
For me it's clear, with this new version, the devart provider try to update the table A even if it doesn't have any changes!! Doing so the provider doesn't treat well the concurrencyToken, I think this is the mess!!!
The same "c# code" with the provider 6.10.111 doesn't fail because it doesn't try to update table A !!! and it is correct because the table A doesn't have any change !!!
Please, let us know if you are able to reproduce the error (the usecase is very simple) otherwise we could sent you a test solution but this could be long and complex for us....
- Tue 16 Feb 2010 11:06
- Forum: dotConnect for Oracle
- Topic: Trial Period Expired 1 minute after install!!!
- Replies: 3
- Views: 1503
- Mon 15 Feb 2010 19:33
- Forum: dotConnect for Oracle
- Topic: Trial Period Expired 1 minute after install!!!
- Replies: 3
- Views: 1503
Trial Period Expired 1 minute after install!!!
Hi, me and some my colleagues are trying to evaluate your software but we aren't able to do it due to an error we receive few minutes after having installed it!!!
The error is always the same, when we try to open Visual Studio (or when we try to add a Entity Model or when we try to add a Linq to Oracle model) we receive the DevArt popup error message indicating that our 30 days Trial Period is Expired!!!
Please, could you help us?
I know that we are failing in some points (because many other users run succesfully the trial) but please, help us to evaluate your SW !!!!
The error is always the same, when we try to open Visual Studio (or when we try to add a Entity Model or when we try to add a Linq to Oracle model) we receive the DevArt popup error message indicating that our 30 days Trial Period is Expired!!!
Please, could you help us?
I know that we are failing in some points (because many other users run succesfully the trial) but please, help us to evaluate your SW !!!!