I installed the latest OraDirect version (4.75.43).
It works very well with System.Guid mapped on RAW(16) columns when reading from DB, but it throws an Exception when inserting a new record.
Here's the client code, Customer is a class (and table on db) with a Guid Id and a string Name (RAW(16) and NVARCHAR(100) on db)
Code: Select all
using (TestOracleDtcDataContext context = new TestOracleDtcDataContext())
{
Customer customer = Customer.CreateCustomer(Guid.NewGuid(), "David");
context.AddToCustomerSet(customer);
context.SaveChanges();
}
TestOracleDtc.DomainModel.Test.TestOracleDtcDataContextTestCase.Insert threw exception: System.Data.UpdateException
System.Data.EntityCommandCompilationException: System.NotSupportedException
Here's the stack
CoreLab.Oracle.OracleUtils.a(DbType A_0)
CoreLab.Oracle.OracleParameter.set_DbType(DbType value)
CoreLab.Common.Entity.h.a.a(Object A_0, TypeUsage A_1)
CoreLab.Common.Entity.h.a.a(DbConstantExpression A_0)
CoreLab.Oracle.Entity.c.a.a(DbConstantExpression A_0)
System.Data.Common.CommandTrees.DbConstantExpression.Accept(DbExpressionVisitor visitor)
CoreLab.Common.Entity.h.a(DbInsertCommandTree A_0, DbCommand A_1, DbProviderManifest A_2)
CoreLab.Oracle.Entity.a.a(DbCommandTree A_0, DbConnection A_1, DbProviderManifest A_2)
CoreLab.Oracle.Entity.OracleEntityProviderServices.a(DbProviderManifest A_0, DbCommandTree A_1)
CoreLab.Oracle.Entity.OracleEntityProviderServices.b(DbProviderManifest A_0, DbCommandTree A_1)
System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
System.Data.Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave)
System.Data.Objects.ObjectContext.SaveChanges()
TestOracleDtc.DomainModel.Test.TestOracleDtcDataContextTestCase.Insert() in D:\Users\roberto\Documenti\Dev\VisualStudio\2008\TestOracleDtc\TestOracleDtc.DomainModel.Test\TestOracleDtcDataContextTestCase.cs: line 88
same thing if i try to update an entity.
My doubt is that you are not supporting insert and update with Guids...