EntityFramework로 작업 할 수있는 방법은 무엇입니까?

c# effort entity-framework

문제

개관
EF6에서 Fitnesse를 사용하면 시작할 때 노력을 기울일 수 없습니다. 내가 찾을 수있는 모든 게시물에서 모든 트릭을 시도했습니다.
모든 게시물은 'RegisterProvider'를 호출하거나 구성 섹션을 추가한다고 말합니다. 둘 다 일하고 있지 않습니다.

지금까지:
machine.config의 DbProviderFactories 섹션에 "Effort.Provider"가 있습니다. 내가 DbProviderFactories.GetFactoryClasses ();를 볼 때 나타나기 시작합니다. ProcMon은 Effort.dll을 찾고 찾음을 보여줍니다.

결과:

DbConnectionFactory.CreateTransient();   
Effort.EntityConnectionFactory.CreateTransient(connectionString);   
DbProviderFactory dataFactory = DbProviderFactories.GetFactory(dt.Rows[5]);   

던지다

DbConnectionFactory.CreateTransient();   
Effort.EntityConnectionFactory.CreateTransient(connectionString);   
DbProviderFactory dataFactory = DbProviderFactories.GetFactory(dt.Rows[5]);   

또한 시도 :
Runner.exe.config의 entityFramework 섹션에서 "Effort.Provider"를 실행할 수 있지만 가져올 수 없습니다. 방금 앱을 추락 시켰습니다.
EF 및 Effort.EF6을 제거하고 다시 설치하십시오. 눈에 보이지 않는 효과.
Effort.Provider.EffortProviderConfiguration.RegisterProvider () 호출; 클래스 생성자 및 다양한 시작 위치에서 가져옵니다. Effort.Provider는 DbProviderFactories.GetFactoryClasses ()에 표시되지 않았습니다.
app.config의 DbProviderFactories 섹션에있는 "Effort.Provider"를 사용하면 machine.config뿐만 아니라 GetFactoryClasses에 나타납니다.

사용 :
윈도우 10
.Net 4.6
VS 2016
EF 6.1.2 (6.1.3이 설치되어 있지만 그것이 의미하는 것이 확실하지는 않지만)

DLL 등을 등록해야합니까? 그것에 관한 지시 사항은 없습니다.

자세한 내용은:
App.config

DbConnectionFactory.CreateTransient();   
Effort.EntityConnectionFactory.CreateTransient(connectionString);   
DbProviderFactory dataFactory = DbProviderFactories.GetFactory(dt.Rows[5]);   

인기 답변

app.config 파일에 "entityFramework"config 섹션을 등록해야하는 것처럼 보입니다.

<configSections>
   <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
 <entityFramework>
   <providers>
      <provider invariantName="Effort.Provider" type="Effort.Provider.EffortProviderServices,Effort" />
    </providers>
 </entityFramework>

그런 다음 코드에서 작업 연결을 만들어 DbContext에 전달합니다. System.Data.Common.DbConnection 유형의 개체를 사용하는 생성자가 아직없는 경우에는이를 만듭니다.

<configSections>
   <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
 <entityFramework>
   <providers>
      <provider invariantName="Effort.Provider" type="Effort.Provider.EffortProviderServices,Effort" />
    </providers>
 </entityFramework>

app.config에 connectionString을 설정하는 것도 좋습니다. 나는 CreateTransient에 대한 호출이 당신을위한 연결을 생성한다고 생각하지만, 테스트중인 코드가 다른 dbContext를 생성하는 코드를 가지고 있다면, 노력은 app.config에서 해당 정보를 가져다 줄 것이다. 다음은 한 테스트에서 완료된 모든 작업이 다른 테스트에 영향을 미치지 않도록 임시 데이터베이스를 만드는 예제입니다.

<configSections>
   <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
 <entityFramework>
   <providers>
      <provider invariantName="Effort.Provider" type="Effort.Provider.EffortProviderServices,Effort" />
    </providers>
 </entityFramework>



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