我正在尝试使用MVC 4.0和EF 4.3.1的新Visual Studio 11 Beta。
添加控制器时,我收到以下消息“无法检索'MyService.Entities.Email'的元数据。'System.Data.Entity.Internal.AppConfig'的类型初始值设定项引发异常”
摄制
我有一个基本的解决方案,它有一个Entities项目(MyService.Entities)和MVC项目(MyService.Website)。
在Entities项目中,我首先使用“Email”类和DbContext类来代码。这两个类看起来像: 的 EntitiesDb
namespace MyService.Entities
{
public class EntitiesDb : DbContext
{
public EntitiesDb(string nameOrConnectionString)
: base(nameOrConnectionString)
{ }
public EntitiesDb()
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Sets up the defaults for the model builder
// Removes the metadata being written to the database, This is being depreciated anyhow
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
// Sets the table names so that they are named as a none plural name
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
// Creates the database from scratch when it builds
base.OnModelCreating(modelBuilder);
}
public DbSet<Email> Emails { get; set; }
}
}
电子邮件
namespace MyService.Entities
{
public class Email
{
public Email()
{
}
[Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]
public int EmailId { get; set; }
public string Subject { get; set; }
public string BodyHTML { get; set; }
}
}
我在MyService.Website MVC项目中引用了MyService.Entities项目,并设置了连接字符串以适合我的数据库名称
<add name="EntitiesDb" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=EntitiesDb;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
当我通过执行以下操作创建MVC脚手架时:
显示
的消息“无法检索'MyService.Entities.Email'的元数据。'System.Data.Entity.Internal.AppConfig'的类型初始值设定项引发异常”
令人困惑的是,它最初工作,然后我开始在数据库中添加更多实体和属性,然后它不允许我。我现在已经缩减了,它仍在继续。
在论坛上看了之后我尝试了一些事情:
这是VS11中的错误吗?我在某个地方错过了对元数据的引用吗?
任何帮助都非常感激。
修改: 通过卸载EntitiesFramework并重新安装NuGet包来解决问题。
答案 0 :(得分:1)
从网络配置中删除此部分
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
</providers>
</entityFramework>