c# - ASP.Net MVC 如何在 ApplicationUser 和我自己的类之间创建一对多关系?

标签 c# asp.net-mvc entity-framework asp.net-identity one-to-many

我正在 Visual Studio Community 2015 中创建一个 ASP.Net MVC 项目,我必须在其中允许用户创建和管理广告。这是一对多关系,意味着用户可以根据需要创建任意数量的广告。每个用户都可以看到所有广告,但只有创建它们的用户才能编辑它们。由于 MVC 模板已经实现了 Identity,我想使用类 ApplicationUser 作为我的用户类。

我在我的模型文件夹中添加了一个广告类,如下所示:

 public class Advertisement
{
    public int AdvertisementId { get; set; }
    public string Description { get; set; }

    public string ApplicationUserID { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}

然后我将 Advertisement DbSet 添加到 ApplicationDbContext 类:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false) {}

    public DbSet<Advertisement> Advertisements { get; set; }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

之后,我启用迁移并重建解决方案:

Enable-Migrations
add-migrations InitialCreate
update-database

到此为止,一切都顺利进行。现在我的问题来了。我现在尝试通过使用“MVC 5 Controller with views, using Entity Framework”模板添加 Advertisement Controller 来搭建脚手架,但生成的 Controller 带有以下 error每次 db.ApplicationUsers 出现在 Controller 上时都会出现。我不知道我做错了什么,我在 stackoverflow 和互联网上到处都看过,但没有一个解决方案适合我。您认为可能有什么问题?

1

最佳答案

首先您需要添加ApplicationUserAdvertisment 之间的链接,找到ApplicationUser 类并添加:

public class ApplicationUser : IdentityUser
{
    // Add this line
    // vvvvvvvvvvvvv
    public virtual ICollection<Advertisment> Advertisments { get; set; }
}

在您的操作方法中,您可以通过以下方式访问用户:

db.Users

关于c# - ASP.Net MVC 如何在 ApplicationUser 和我自己的类之间创建一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33528024/

相关文章:

c# - 是否可以使用 PdfSharp/Migradoc 为所有页面设置背景图像?

asp.net-mvc - OnAuthorization 未被调用

sql-server - 我的开发计算机上的 Microsoft.SqlServer.Types 异常

javascript - 在 ASP.NET MVC 中组合和缩小 JS 和 CSS

c# - 从基础实体访问子实体的属性

azure - "Login failed for user"在 Azure SQL 中为 "The underlying provider failed on Open"

c# - 数据库中的数据未更新,使用 C#、WPF、 Entity Framework 和 Visual Studio 2012

c# - 如何将 String 拆分为 2 种不同的类型?

c# - 手动解决受属性约束约束的依赖关系

Javascript - Json 还是 html?