gpt4 book ai didi

asp.net-mvc - 如何与asp身份用户建立一对多关系

转载 作者:行者123 更新时间:2023-12-04 23:42:58 24 4
gpt4 key购买 nike

我使用带有 MVC + Identity 的默认 Web 应用程序来管理用户,并且我试图让每个注册用户制作他的电影列表,并且在登录时只能看到他的列表。

所以,对于我的例子,我做了一个电影课

public class Movie
{
public int MovieId { get; set; }
public string MovieName { get; set; }
public string Year { get; set; }
public string Genre { get; set; }

public virtual ApplicationUser ApplicationUser { get; set; }
}

在 ApplicationUser 我已经把
public virtual ICollection<Movie> Movies { get; set; }

有一个电影列表。

我还制作了一个 Entity FrameWork MovieController,使用 Movie 作为模型和 ApplicationDbContext 作为上下文。

所以我在查询数据库以让每个用户只查看他的电影列表时遇到问题,使用默认脚手架我在 MoviesController 的索引操作中得到这个
 public ActionResult Index()
{
var movies = db.Movies.ToList();
return View(movies);
}

如果有人对我的问题有经验,请提供帮助,欢迎提供任何意见并非常感谢。

最佳答案

您需要在 ApplicationUserID 的电影类中再添加一个属性,以便在它们之间创建适当的关系,如下所示:

public class Movie
{
public int MovieId { get; set; }
public string MovieName { get; set; }
public string Year { get; set; }
public string Genre { get; set; }

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

现在,您可以像这样为用户获取所有电影:
public ActionResult Index()
{
ApplicationDbContext context = new ApplicationDbContext();
string userid = User.Identity.GetUserId();
IEnumerable<Movie> movies = new List<Movie>();
if (!string.IsNullOrEmpty(userid))
{
movies = context.Movies.Where(x => x.ApplicationUserID == userid);
}

return View(movies);
}

关于asp.net-mvc - 如何与asp身份用户建立一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594641/

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