gpt4 book ai didi

asp.net - "Add controller"的问题,MVC 4

转载 作者:行者123 更新时间:2023-12-03 03:20:18 25 4
gpt4 key购买 nike

我有一个运行 MVC 4 的 Azure Web 应用程序。它使用 Entity Framework (版本 4.3.1.0)和 Code First 以及数据上下文。

我在自己的项目中有数据上下文,也有所有模型文件。

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>());
}

}

相关模型是“Team”,如下所示:

namespace MyAwesomeNamespace.Model
{
public class Team
{

[Key]
public int Id { get; set; }
public string Name { get; set; }

public ICollection<User> Users { get; private set; }

}
}

这应该一切都很好。这些是我的整个网络应用程序的模型。所以现在我想添加 Controller ,以便我实际上可以对模型做一些事情。所以我做我通常做的事情,

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".

我现在按“添加”。这会产生以下消息。

"Unable to retrieve metadata for 'MyAwesomeNamespace.Model.Team'. Invalid column name 'CreatedOn'."

有人知道在这里做什么吗?我找不到任何解决方案。

<小时/>

一些额外信息:

使用 Azure 数据库(在线)。使用 Visual Studio 2010 专业版。

最佳答案

我想知道您数据库的 Team 表中是否有 CreatedOn 列。如果您已有数据库,请确保您的模型类与数据库表相对应。例如,将 CreatedOn 属性添加到您的模型中。如果您想要代码优先的方法,您可以删除数据库。让 Entity Framework 自动生成数据库。您还可以采用数据库优先的方法。让 Entity Framework 自动从数据库生成代码。

最诚挚的问候,

徐明。

关于asp.net - "Add controller"的问题,MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com