DbSet에 액세스 할 때 Effort (EF6) 예외 (지정된 키가 사전에 없음)

.net effort entity-framework entity-framework-6 linq

문제

이것은 추적하기가 힘들지 만 Entity Framework 6 테스트를 위해 Effort를 사용할 때 DBSet 중 하나에 액세스하려고 할 때 KeyNotFoundException ( "주어진 키가 사전에 없습니다") 오류가 발생하는 것 같습니다. 저장소.

DbContext에서 하나 또는 두 개의 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 2014 데이터베이스 테이블 중 일부에서 SQL 지리 데이터 형식을 사용하고 있기 때문에 노력 이이 데이터 형식을 지원하지 않기 때문에 그 순간에 지원을 추가 할 계획이 없기 때문에 어느 날 나에게 남겨 둡니다. 나는 EF6를위한 다른 메모리 내장 데이터베이스 제공자를 찾을 수 없기 때문에 진정한 추세에 빠지게됩니다!

잠재적으로 다른 새로운 참조 유형 필드도있을 수 있습니다.이 필드는 지원하지 않으며 확실하지 않습니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.