我似乎无法解决实体框架6中似乎是一个常见问题.我已经在SO上回顾了与此问题相关的许多主题,并且无法找到适用于我的特定情况的解决方案.
到目前为止,我一直在使用带有代码优先迁移的localdb进行开发,这很好.但是现在我将它移动到实际的SQL服务器实例,它会在尝试迁移时抛出以下错误:
"具有不变名称'System.Data.SqlClient;'的ADO.NET提供程序 要么没有在机器或应用程序配置文件中注册,要么无法加载.有关详细信息,请参阅内部异常.在System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)"
我尝试了以下修复:
1)卸载并重新安装的实体框架
2)添加了代码并使用:
public abstract class BaseDomainContext : DbContext
{
static BaseDomainContext()
{
// ROLA - This is a hack to ensure that Entity Framework SQL Provider is copied across to the output folder.
// As it is installed in the GAC, Copy Local does not work. It is required for probing.
// Fixed "Provider not loaded" error
var ensureDLLIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
}
}
Run Code Online (Sandbox Code Playgroud)
作为我的DbSet类的基类.
3)将所有内容添加到新的解决方案并收到相同的错误.
4)删除了writecontext并尝试了只读的迁移,仍然失败了.
5)使用来自MSDN的信息尝试了几次重写
6)我已经确认EntityFramework.SqlServer.dll在我的bin目录中.它也被正确引用.另外,我的解决方案只有一个项目.
7)确认我没有在视图下使用WebConfig.
8)确认我在bin文件夹中有System.Data …
.net asp.net asp.net-mvc entity-framework entity-framework-6