ODP.NET 11.2.0.3.0 で Entity Framework を使用しています。一部のテーブルでは永続性が機能していますが、これは単純な新しいオブジェクトの追加を完全に拒否しており、よくわかりません。よろしくお願いいたします。ありがとうございました
これがコードです。モデル ブラウザを使用してオブジェクトからイメージ フィールドを削除しましたが、SaveChanges() が呼び出されるとコードが失敗します。
var corpDirectoryEntities = new CorpDirectoryEntities();
var cc = new EmployeePhoto();
cc.UserId = 12345; // NUMBER field
cc.ImageName = "imagename"; // VARCHAR2(100)
cc.Image = photoStream; // LONG RAW
corpDirectoryEntities.EmployeePhotos.AddObject(cc);
corpDirectoryEntities.SaveChanges();
以下の例外が発生します。
System.Data.UpdateException がユーザー コードによって処理されませんでした
Message=エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。
ソース=System.Data.Entity
スタックトレース:
System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager、IEntityAdapter アダプター) で
System.Data.EntityClient.EntityAdapter.Update (IEntityStateManager entityCache) で
System.Data.Objects.ObjectContext.SaveChanges (SaveOptions オプション) で
System.Data.Objects.ObjectContext.SaveChanges() で
C:\Dev\Projects\Repositories\Services\CorpDirectory\CorpDirectoryRepository.cs:line 356 の Repositories.Services.CorpDirectory.CorpDirectoryRepository.SaveDirectoryAccountPhoto(Int32 accountId, Byte[] photoStream) で
C:\Dev\Projects\Repositories.Tests\CorpDirectory\CorpDirectoryUserTestFixture.cs:line 192 の Tests.CorpDirectory.CorpDirectoryUserTestFixture.TestGetUserPhoto() で
内部例外: System.Data.EntityCommandCompilationException
Message=コマンド定義の準備中にエラーが発生しました。詳細については、内部例外を参照してください。
ソース=System.Data.Entity
スタックトレース:
System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree コマンド ツリー) で
System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand (UpdateTranslator トランスレーター、Dictionary'2 identifierValues) で
System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute (UpdateTranslator トランスレーター、EntityConnection 接続、Dictionary`2 identifierValues、List`1 generatedValues) で
System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager、IEntityAdapter アダプター) で
内部例外: System.InvalidOperationException
Message=オブジェクトの現在の状態のため、操作は有効ではありません。
ソース=Oracle.DataAccess
スタックトレース:
Oracle.DataAccess.Client.SqlGen.DmlSqlGenerator.ExpressionTranslator.Visit (DbScanExpression 式) で
System.Data.Common.CommandTrees.DbScanExpression.Accept (DbExpressionVisitor ビジター) で
Oracle.DataAccess.Client.SqlGen.DmlSqlGenerator.GenerateInsertSql (DbInsertCommandTree ツリー、EFOracleProviderManifest providerManifest、EFOracleVersion sqlVersion、List'1& パラメーター) で
Oracle.DataAccess.Client.SqlGen.SqlGenerator.GenerateSql (DbCommandTree ツリー、EFOracleProviderManifest providerManifest、EFOracleVersion sqlVersion、List`1& パラメーター、CommandType& commandType) で
Oracle.DataAccess.Client.EFOracleProviderServices.CreateCommand (EFOracleProviderManifest providerManifest、DbCommandTree コマンド ツリー) で
Oracle.DataAccess.Client.EFOracleProviderServices.CreateDbCommandDefinition (DbProviderManifest providerManifest、DbCommandTree commandTree) で
System.Data.Common.DbProviderServices.CreateCommandDefinition (DbCommandTree コマンド ツリー) で
System.Data.Common.DbProviderServices.CreateCommand (DbCommandTree コマンド ツリー) で
System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree コマンド ツリー) で
内部例外: