我有一个天蓝色的Web应用程序,运行MVC 4.它使用实体框架(版本4.3.1.0)和Code First与数据上下文一起。问题与“添加控制器”,MVC 4
我有自己的项目中的数据上下文,也有所有的模型文件。
public class AwesomeModelContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<License> Licenses { get; set; }
public DbSet<AppSession> AppSessions { get; set; }
public DbSet<EditSession> EditSessions { get; set; }
public DbSet<Space> Spaces { get; set; }
public DbSet<SpaceUserPrivilege> SpaceUserPrivileges { get; set; }
public DbSet<File> Files { get; set; }
public DbSet<Resource> Resources { get; set; }
public DbSet<Team> Teams { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Remove cascading deletes, having them turned on by default scares me.
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Entity<Space>()
.HasMany<SpaceUserPrivilege>(s => s.SpaceUserPrivileges)
.WithRequired(p => p.Space)
.WillCascadeOnDelete(true);
modelBuilder.Entity<User>()
.HasMany<SpaceUserPrivilege>(u => u.SpaceUserPrivileges)
.WithRequired(p => p.User)
.WillCascadeOnDelete(true);
modelBuilder.Entity<Team>()
.HasMany<User>(u => u.Users)
.WithRequired()
.WillCascadeOnDelete(false);
// Run migrations, if any.
Database.SetInitializer<AwesomeModelContext >(new MigrateDatabaseToLatestVersion<AwesomeModelContext , Configuration>());
}
}
相关模型是“团队”,它看起来像这样:
namespace MyAwesomeNamespace.Model
{
public class Team
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ICollection<User> Users { get; private set; }
}
}
应在所有美好和幸福。这些是我整个网络应用程序的模型。所以现在我想添加控制器,以便我可以对模型做些事情。所以我做我通常做的,
Right-click the controller folder, and press "add controller"
I name the controller "TeamController", then select the model to be "MyAwesomeNamespace.Model.Team" and the data context to "MyAwesomeNamespace.Model.AwesomeModelContext".
我现在按Add。这会导致以下消息。
"Unable to retrieve metadata for 'MyAwesomeNamespace.Model.Team'. Invalid column name 'CreatedOn'."
任何人都知道该怎么办?我无法找到任何解决方案。
一些额外的信息:
使用Azure数据库(在线)。 使用Visual Studio 2010专业版。
我也试过使用实体框架5.0.0-rc。这给了我一个不同的错误:“无法检索'... Model.Team'的元数据'''FK_dbo.TeamUsers_dbo.Teams_Team_Id'不是一个限制,不能删除约束,请参阅前面的错误。 – Automatico 2012-07-17 13:24:58