C# EF6错误168 ProviderManifest实例
生成表和关系的实体视图时出错 我正在使用EF6,我正在做一个关于编写DbContext类的教程。没有人知道我为什么会出现这个错误以及如何修复它C# EF6错误168 ProviderManifest实例,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,生成表和关系的实体视图时出错 我正在使用EF6,我正在做一个关于编写DbContext类的教程。没有人知道我为什么会出现这个错误以及如何修复它 Error 168: The provider did not return a ProviderManifest instance. The provider did not return a ProviderManifest instance.C:\....\BlogContext.edmx M
Error 168: The provider did not return a ProviderManifest instance.
The provider did not return a ProviderManifest instance.C:\....\BlogContext.edmx Miscellaneous Files
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<connectionStrings>
<add name="BlogContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-BlogDbContext-20131105145750;User Instance=false;Persist Security Info=False;Integrated Security=SSPI; AttachDBFilename=|DataDirectory|\aspnet-BlogDbContext-20131105145750.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer" />
</providers>
</entityFramework>
[DbConfigurationType(typeof(EntityFrameworkDbConfiguration))]
public partial class BlogContext : DbContextBase
{
public BlogContext()
: base("BlogContext")
{
Database.SetInitializer<BlogContext>(null);
Configuration.ProxyCreationEnabled = false;
}
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new CategoryMap());
modelBuilder.Configurations.Add(new PostMap());
modelBuilder.Configurations.Add(new TagMap());
modelBuilder.Configurations.Add(new PostTagMap());
modelBuilder.Configurations.Add(new CommentMap());
}
}
public class DbContextBase: DbContext, IDbContext
{
public readonly Guid _instanceId;
public DbContextBase(string nameOrConnectionString)
: base(nameOrConnectionString)
{
_instanceId = Guid.NewGuid();
}
public Guid InstanceId
{
get { return _instanceId; }
}
public void ApplyStateChanges()
{
foreach (DbEntityEntry dbEntityEntry in ChangeTracker.Entries())
{
var entityState = dbEntityEntry.Entity as IObjectState;
if (entityState == null)
throw new InvalidCastException("All entities must implement the IObjectState interface, " +
"this interface must be implemented so each entities state can explicitly determined when updating graphs.");
dbEntityEntry.State = StateHelper.ConvertState(entityState.State);
}
}
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
public override int SaveChanges()
{
ApplyStateChanges();
return base.SaveChanges();
}
public override Task<int> SaveChangesAsync()
{
ApplyStateChanges();
return base.SaveChangesAsync();
}
public override Task<int> SaveChangesAsync(System.Threading.CancellationToken cancellationToken)
{
ApplyStateChanges();
return base.SaveChangesAsync(cancellationToken);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
}
错误168:提供程序未返回ProviderManifest实例。
提供程序未返回ProviderManifest实例。C:\..\BlogContext.edmx杂项文件
[DbConfigurationType(typeof(EntityFrameworkBCConfiguration))]
公共部分类BlogContext:DbContextBase
{
公共博客上下文()
:base(“博客上下文”)
{
Database.SetInitializer(null);
Configuration.ProxyCreationEnabled=false;
}
public new IDbSet Set(),其中T:class
{
返回base.Set();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
添加(新的CategoryMap());
modelBuilder.Configurations.Add(newpostmap());
添加(新标记映射());
添加(新的PostTagMap());
modelBuilder.Configurations.Add(newcommentmap());
}
}
公共类DbContextBase:DbContext,IDbContext
{
公共只读Guid\u实例ID;
公共数据库上下文库(字符串名称或连接字符串)
:base(名称或连接字符串)
{
_instanceId=Guid.NewGuid();
}
公共Guid实例ID
{
获取{return\u instanceId;}
}
public void ApplyStateChanges()
{
foreach(ChangeTracker.Entries()中的DbEntityEntry DbEntityEntry)
{
var entityState=dbEntityEntry.Entity作为IObjectState;
if(entityState==null)
抛出新的InvalidCastException(“所有实体都必须实现IObjectState接口,”+
“必须实现此接口,以便在更新图形时可以显式确定每个实体的状态。”);
dbEntityEntry.State=StateHelper.ConvertState(entityState.State);
}
}
public new IDbSet Set(),其中T:class
{
返回base.Set();
}
公共覆盖int SaveChanges()
{
ApplyStateChanges();
返回base.SaveChanges();
}
公共覆盖任务saveChangesSync()
{
ApplyStateChanges();
返回base.saveChangesSync();
}
公共覆盖任务saveChangesSync(System.Threading.CancellationToken CancellationToken)
{
ApplyStateChanges();
返回base.saveChangesSync(cancellationToken);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove();
基于模型创建(modelBuilder);
}
}
请提供堆栈跟踪如何获取错误的堆栈跟踪。它只显示带有X的错误,没有内部异常或错误日志信息。当我加载我的项目时,它会显示错误,但会显示没有任何错误的页面。将此添加到edmx文件Provider=“System.Data.SqlClient”ProviderManifestToken=“2005”中,并显示ProviderManifestToken属性不允许,与ProviderMasifestToken相同