DbSetにアクセスするときのEffort(EF6)例外(指定されたキーが辞書に存在しない)


質問

これはトレースするのが少し難しいと分かっていますが、Entity Framework 6のテストにEffortを使用すると、DBSetの1つにアクセスしようとしたときにKeyNotFoundException(「指定されたキーが辞書に存在しませんでした」)リポジトリ。

私はそれがDbContextの1つまたは2つのDbSetsで動作することに気づいたが、DbContextに複数のDbSetsを追加すると、上記のエラーが発生する。

コード例(これは私のコード全体を単純化したもので、DbContextからいくつかのDbSetsをコメントアウトしてから入れ直すとエラーが無作為に表示されます。モデルに部分クラスもありますが、奇妙な):

テスト

            [Fact]
            public void MyTest()
            {
                var connection = Effort.DbConnectionFactory.CreateTransient();
                var context = new StubDbContext(connection);

                var count = context.Models1.Count();
                Assert.Equal(count, 0);

            }

DBContextモデルとDbSetsモデル

            [Fact]
            public void MyTest()
            {
                var connection = Effort.DbConnectionFactory.CreateTransient();
                var context = new StubDbContext(connection);

                var count = context.Models1.Count();
                Assert.Equal(count, 0);

            }

スタックトレース:

            [Fact]
            public void MyTest()
            {
                var connection = Effort.DbConnectionFactory.CreateTransient();
                var context = new StubDbContext(connection);

                var count = context.Models1.Count();
                Assert.Equal(count, 0);

            }

人気のある回答

私は正確な問題を抱えています。私はSQLの地理データ型をSQL 2014のデータベーステーブルのいくつかで使用していたため、努力はこのデータ型をサポートしていないため 、現時点でサポートを追加する予定はなく、私はEF6のための他のメモリ内データベースプロバイダを見つけることができないので、実際の過渡状態では!

潜在的にそれがサポートしていないより新しい新しい参照型フィールドが存在する可能性があります。





ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ