我正在 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 和互联网上到处都看过,但没有一个解决方案适合我。您认为可能有什么问题?
最佳答案
首先您需要添加ApplicationUser
和Advertisment
之间的链接,找到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/