我有 Visual Studio 2012,并且正在将实体框架堆栈与 EF 6 结合使用。我所做的一切都正确,但在添加迁移时出现错误。
System.Data.Entity.Core.ProviderInknownException
这是课程
public class Order
{
public virtual int OrderID { get; set; }
}
上下文文件
public ShoppingCartContext() : base("ShoppingCartDb")
{
Database.SetInitializer<ShoppingCartContext>(new DropCreateDatabaseAlways<ShoppingCartContext>());
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region Entity Framework 6 RC-1
modelBuilder.Properties().Where(x => x.Name == x.DeclaringType.ToString() + "ID")
.Configure(x => x.IsKey());
modelBuilder.Properties<DateTime>()
.Configure(x => x.HasColumnType("datetime2"));
#endregion
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
以及连接字符串的 web.config 文件部分
<connectionStrings>
<add name="ShoppingCartDb"
connectionString="Server=Localhost;Database=ShoppingCartEfDb;User Id=sa;Password=xxxxxxxxxx"
providerName="System.Data.SqlClient" />
</connectionStrings>
每当我尝试添加迁移时,我都会收到错误:
System.Data.Entity.Core.ProviderInknownException:从数据库获取提供程序信息时发生错误。这可能是由于实体框架使用了不正确的连接字符串造成的。检查内部异常的详细信息并确保连接字符串正确。 ---> System.Data.Entity.Core.ProviderInknownException:提供程序未返回 ProviderManifestToken 字符串。 --->
System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供商:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错)
尝试这个。确保您的 ShoppingCartContext 所在的项目是启动项目,或者在执行 add-migration 命令时包含参数 -startupprojectname ex。添加迁移-startupprojectname yourprojectname
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)