質問

ここでは、内部例外があります:

InnerException: System.Data.UpdateException
Message=Entities in 'OrganizerDBEntities.Assignments' participate in 
the 'CourseId' relationship. 0 related 'Course' were found. 
1 'Course' is expected.`  

私は3つのテーブル(フォルダ、譲渡、コースを)持っています。割り当てテーブルはAssignmentIdと呼ばれる主キーとプロパティをtrueに設定されている「NULL値許可」がCourseIdと呼ばれる外部キーを持っています。この例外が防止されるので、私は)(_entities.SaveChangesを呼び出します。したがって、データベースにデータを追加することから私をpeventingます。

<時間>

UPDATE:絞りかすのおかげで、その問題が解決されましたが、他が生じます:

 InnerException: System.Data.UpdateException
        Message=An error occurred while updating the entries. See the InnerException for details.
        Source=System.Data.Entity
        StackTrace:
             at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
             at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
             at System.Data.Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave)
             at System.Data.Objects.ObjectContext.SaveChanges()
             at AssignmentOrganizer.App_Data.AssignmentRepository.CreateAssignment(Assignment assignmentToCreate) in C:\Users\Mohit\Documents\Visual Studio 2010\Projects\AssignmentOrganizer\AssignmentOrganizer\App_Data\AssignmentRepository.cs:line 19
             at AssignmentOrganizer.MainWindow..ctor() in C:\Users\Mohit\Documents\Visual Studio 2010\Projects\AssignmentOrganizer\AssignmentOrganizer\MainWindow.xaml.cs:line 54
        InnerException: System.Data.EntityCommandCompilationException
             Message=An error occurred while preparing the command definition. See the inner exception for details.
             Source=System.Data.Entity
             StackTrace:
                  at System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
                  at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
                  at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
                  at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
             InnerException: System.NotSupportedException
                  Message=Server-generated keys and server-generated values are not supported by SQL Server Compact.
                  Source=System.Data.SqlServerCe.Entity
                  StackTrace:
                       at System.Data.SqlServerCe.SqlGen.DmlSqlGenerator.GenerateReturningSql(StringBuilder commandText, DbModificationCommandTree tree, ExpressionTranslator translator, DbExpression returning)
                       at System.Data.SqlServerCe.SqlGen.DmlSqlGenerator.GenerateInsertSql(DbInsertCommandTree tree, List`1& parameters, Boolean isLocalProvider)
                       at System.Data.SqlServerCe.SqlGen.SqlGenerator.GenerateSql(DbCommandTree tree, List`1& parameters, CommandType& commandType, Boolean isLocalProvider)
                       at System.Data.SqlServerCe.SqlCeProviderServices.CreateCommand(DbProviderManifest providerManifest, DbCommandTree commandTree)
                       at System.Data.SqlServerCe.SqlCeProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
                       at System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
                       at System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
                       at System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
                  InnerException: 
役に立ちましたか?

解決

私がチェックする最初のものは、あなたのEF概念モデルでの関連付けOrganizerDBEntities.Assignmentsです。 Nの関係:それは0を可能にしていますか?エラーメッセージから、私はそれはないと信じてにつながると思います。あなたのEFモデルにカーディナリティ(最小値と最大可能な値)を微調整することができます。

あなたはEDMXデザイナー表面に2つのエンティティ間の関連付けを選択すると、プロパティウィンドウショー協会の両端。これらの「終了」プロパティのそれぞれに、関連のカーディナリティを定義し、「多重」の値があります:など0:*0..1:*1:*とを

あなたが欠落している値を許可したい場合は、

は、あなたの組合の子側の多重度が0..1(0または1)にする必要がある - それは本当に0..1(0または1)ですか?それとも、代わりに1に設定されている?

他のヒント

ここに私の2セント。
私はちょうど、NULL.Soに外部キーの値を設定する代わりに、割り当て表の外部キーとしてCourseId設定コーステーブルの外部キーとして設定AssignmentIdを避けます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top