我有一个使用EF 6.0.2的项目,但现在我在EF 6.1中遇到错误:
EntityFramework.dll中发生了'System.Data.Entity.Core.ProviderIncompatibleException'类型的异常,但未在用户代码中处理
其他信息:访问数据库时出错。这通常意味着与数据库的连接失败。检查连接字符串是否正确,以及是否使用了相应的DbContext构造函数来指定它或在应用程序的配置文件中找到它。有关DbContext和连接的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=386386。有关失败的详细信息,请参阅内部异常。
提供商未返回ProviderManifestToken字符串。
{“无法确定'System.Data.SqlClient.SqlClientFactory'类型的提供者工厂的提供者名称。确保在应用程序配置中安装或注册了ADO.NET提供程序。”}
知道可能出错的是什么?我不确定在哪里看。
我的DBContext如下:
public class Context : DbContext {
public Context()
: base() {
Configuration.With(x => {
x.LazyLoadingEnabled = false;
});
} // Context
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder builder) {
builder.Configurations.With(x => { x.Add(new UserMapper()) });
}
}
在我的网站上。我有以下内容:
<add name="Context" providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS;Database=MYDB;Trusted_Connection=true;" />
我正在使用StructureMap在存储库中注入Context:
For<DbContext>().HybridHttpOrThreadLocalScoped().Use(() => new Context());
For<IRepository>().Transient().Use<Repository>();
谢谢你, 米格尔
答案 0 :(得分:2)
我认为这个问题将在EF 6.1.1中修复:https://entityframework.codeplex.com/workitem/2138
答案 1 :(得分:1)
我遇到了同样的问题,但奇怪的是在我的情况下,我有一个第三个内部异常抱怨它无法连接到我的SQL实例。
重新启动SQL服务解决了这个问题。