Reputation: 87
We are using custom Entity Framework ADO .Net provider (data access layer is middle tier between application and FireBird). EF working well with such provider. Also we using Breeze services connected to EFContextProvider. The problem is - when I tried to use something like:
var contextProvider = new EFContextProvider<CompanyContext>();
return contextProvider.Metadata();
First I got exception:
The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
Ok, I added SqlServer provider reference to web.config in addition to my custom provider:
<entityFramework>
<providers>
<provider invariantName="MyDataProvider" type="MyDataProvider.MyProviderServices, MyDataProvider"/>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
And now I getting another error:
Additional information: CREATE DATABASE permission denied in database 'master'.
Looks like Breeze using SqlServer provider inside. Is it anyway to use EFContextProvider.Metadata with custom ADO .Net provider?
Upvotes: 0
Views: 208
Reputation: 87
Oh, I found answer quickly myself. In default CompanyContext constructor following line should be added:
Database.SetInitializer<CompanyContext>(null);
Thats it! Breeze generate Metadata from DbSet`s perfectly and very fast.
Upvotes: 1