質問: 私は、Visual StudioとC#でEffortを使用してデータベースを再作成し、ユニットテストしています。私は単一のテーブルのためのクラスを書いているので、私はそのテーブルのオブジェクトでデータベースにデータを取り込みます。私の問題は、Effortデータベースが、オブジェクトの外部キーがデータベース内の実際のオブジェクトを参照することを望んでいることです。 私のエラーは > System.Data.Entity.Infrastructure.DbUpdateException:エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。 > > System.Data.Entity.Core.UpdateException:エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。 > > System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。 > > NMemory.Exceptions.ForeignKeyViolationException:外部キー違反[Table1 :: SettingsId]。キー値[0]は、参照されるテーブル[Table2 :: SettingsId]に存在しません。エラーコード:RelationError > > この特定のテーブルは多くの他の外部キーを持つオブジェクトに多くの外部キーを持っているので、多くの作業が必要になります。これをオフにしてこのテーブルだけをテストできるように努力する方法はありますか?
回答: 私もこの問題に遭遇し、大きなデータベースの範囲でテーブルをテストしたかったのです。必要なものすべてをインスタンス化し、その結果としてデータベースまたはテーブルを参照渡しするヘルパーメソッドを作成できます。それはあなたが必要とするテストメソッド/クラスからいつでも呼び出すことができるので役に立ちます。