【发布时间】:2020-06-22 08:27:23
【问题描述】:
我有 2 个模型类电影和客户。我制作了一对多外键,以便可以将电影添加到客户列表中。但现在我无法向客户添加电影,也没有出现任何错误。
这是我的代码。
电影课
public class Movie
{
[Key]
public int MovieId { get; set; }
public String Name { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? DateCreated { get; set; }
public int? CustomerId { get; set; }
public Customer Customer { get; set; }
}
客户类别
public class Customer
{
[Key]
public int CustomerId { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public bool IsCreated { get; set; }
public int MaxMovies { get; set; }
[Column(TypeName = "datetime2")]
public DateTime Created { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? LastEdited { get; set; }
[ForeignKey("MovieId")]
public List<Movie> Movies = new List<Movie>();
}
这是我的CustomerController 类中的代码,应该将电影添加到我的客户
[HttpGet]
public IActionResult AddMovie(int id)
{
List<Movie> movieList = new List<Movie>();
movieList = dbContext.Movies.ToList();
AddMovieViewModel viewModel = new AddMovieViewModel()
{
movies = movieList,
customer = dbContext.Customers
.Where(s => s.CustomerId == id)
.FirstOrDefault()
};
return View(viewModel);
}
[HttpPost]
public IActionResult AddMovie (int id,int cid)
{
Customer customer = dbContext.Customers
.Where(s => s.CustomerId == cid)
.FirstOrDefault();
Movie movie = dbContext.Movies
.Where(s => s.MovieId == id)
.FirstOrDefault();
movie.CustomerId = customer.CustomerId;
customer.Movies.Add(movie);
dbContext.SaveChanges();
return RedirectToAction("Index");
}
我希望有人能告诉我我的代码有什么问题。
【问题讨论】:
-
为什么您认为您的代码有问题?您能否告诉我们您遇到了哪个编译器错误或异常,以及您在哪一行得到它?
-
另外,您似乎正在加载现有电影,更改其上的客户 ID,然后将其保存回来。这不会创建新电影,而是会更新现有电影。这可能是问题吗?
-
在我看来,它显示了客户的电影数量,但始终为 0
-
@LasseV.Karlsen 是的,就是这样,但我尝试制作一部新电影并添加它,但我找不到这样做的方法。
标签: c# asp.net-core-mvc