Entity Framework 6 and Effort (Entity Framework module testing tool) System.ArgumentException: string cannot have zero length

I'm currently trying to write a unit / integration test using Effort as a database provider in a database.

I am following a tutorial on creating a fake DbContext instance , but I get a System.ArgumentException: the string cannot have zero length. "about creating an EntityConnection.

Background:

  • Using Entity Framework 6
  • Using Effort 1.0.0.0
  • Using a Database First Approach
  • Using the EntityConnectionFactory approach to create a fake DbContext with efficiency rather than a DbConnectionFactory, as described in the Efforts tutorial
  • My DbContext has a corresponding constructor that takes one DbConnection parameter

The connection string is defined in app.config for the test runner and works with effortless tests, some of which are read / written to the test database. I deleted any sensitive data:

<connectionStrings>
    <add name="MyConnectionString" 
        connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string='data source=localhost;initial catalog=MyDatabaseName;persist security info=True;user id=myuser;password=mypassword;MultipleActiveResultSets=True;App=EntityFramework'" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

Stack trace for error below:

System.ArgumentException: . System.Reflection.RuntimeAssembly.GetResource( RuntimeAssembly, String resourceName, ref UInt64, StackCrawlMarkHandle stackMark, Boolean skipSecurityCheck) System.Reflection.RuntimeAssembly.GetManifestResourceStream(String name, ref StackCrawlMark stackMark, Boolean skipSecurityCheck) System.Reflection.RuntimeAssembly.GetManifestResourceStream( ) at Effort.Internal.Common.MetadataWorkspaceHelper.ParseResources(String resPath, List 1 csdl, List 1 ssdl, List 1 msl) at Effort.Internal.Common.MetadataWorkspaceHelper.ParseMetadata(String metadata, List 1 csdl, List 1 ssdl, List 1 msl) at Effort.Internal.Common.MetadataWorkspaceHelper.Rewrite(String metadata, String providerInvariantName, String providerManifestToken) at Effort.EntityConnectionFactory.b__1 (String metadata) at Effort.Internal.Caching.MetadataWorkspaceStore. < > c__DisplayClass1.b__0() System.Lazy 1.CreateValue() at System.Lazy 1.LazyInitValue() System.Lazy 1.get_Value() at Effort.Internal.Caching.ConcurrentCache 2.Get( TKey, Func 1 factory) at Effort.Internal.Caching.MetadataWorkspaceStore.GetMetadataWorkspace(String metadata, Func 2 workspaceFactoryMethod) at Effort.EntityConnectionFactory.GetEffortCompatibleMetadataWorkspace(ref String entityConnectionString) at Effort.EntityConnectionFactory.CreateTransient(String entityConnectionString, IDataLoader dataLoader) at Effort.EntityConnectionFactory.CreateTransient(String entityConnectionString) NUnitTests.EffortTests.BasicAdd() EffortTests.cs: 43

- , ?

+4

Source: https://habr.com/ru/post/1545006/


All Articles