Gor*_*ran 9 entity-framework entity-framework-6
高达EF5,为了连接到SQL Server 2012,我需要的是指定一个类似于下面的连接字符串:
Data Source=.\SqlExpress;Initial Catalog=MyDatabase;Integrated security=True;MultipleActiveResultSets=True
Run Code Online (Sandbox Code Playgroud)
这种方法不适用于EF6,给出例外
找不到'System.Data.Odbc'ADO.NET提供程序的实体框架提供程序.确保提供程序已在应用程序配置文件的"entityFramework"部分中注册
我根本没有使用app.config文件,我将连接字符串传递给MyContext构造函数.为什么它试图使用Odbc提供程序,而不是使用System.Data.SqlClient?
使用EF6代码优先连接到SQL Server需要做些什么?我确保EntityFramework.dll和EntityFramework.SqlServer.dll都在Application文件夹中可用.我甚至在WPF项目中添加了EF6 nuget包v6.0.0.1,虽然它不直接使用EF库,并确保将自动创建的App.Config文件(由nuget)复制到Application(Debug)文件夹 - 仍然没有成功.
我也试过在代码中手动setprovider:
public class OeeCoachConfiguration : DbConfiguration
{
public OeeCoachConfiguration()
{
SetProviderServices("System.Data.SqlClient",
System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
Run Code Online (Sandbox Code Playgroud)
仍然没有成功.我的项目结构如下(简化):
WPF项目 - 没有引用EF(也试过添加EF引用)
ViewModel类库 - 没有引用EF
模型类库 - 引用EF库(两个dll)
数据类库 - 引用UI库(两个dll).
我正在使用CodeFirst方法,这个设置对EF5没有任何问题.任何帮助是极大的赞赏.
我有同样的问题,我最终尝试了以下它,它工作(保持Glimpse EF5和Glimpse ADO包)
在web.config中,我添加了现有提供程序行的副本,但将其invariantName更改为"System.Data.Odbc".
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.Odbc" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.
乔纳森
| 归档时间: |
|
| 查看次数: |
6318 次 |
| 最近记录: |