我试图在C#上写一个简单的CRUD。
我在界定这些实体之间的关系时遇到了困难:
public class Movie
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public Director Director { get; set; }
}
public class Director
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Movie> DirectedMovies { get; set; }
}如何使一个导演可以有多部电影,一部电影可以有一个导演?
Movie表有DirectorId列,但我找不到从前端将导演添加到电影中的方法。
在MovieController中,我有以下代码:
public ActionResult performAddMovie(Movie movie)
{
try
{
ctx.Movies.Add(movie);
ctx.SaveChanges();
return RedirectToAction("Index", "Home");
}
catch(Exception ex)
{
ModelState.AddModelError("Messaggio", ex.Message);
}
return RedirectToAction("Index", "Home");
}这让我可以在数据库中添加一部新电影,但我也不知道如何添加一个导演。
谢谢
发布于 2022-09-16 15:38:21
Director只是另一个属性。想必,在将特定的Movie对象传递给performAddMovie之前,您需要设置Movie的标题。
如果您有Director的ID,则可以:
var director = ctx.Directors.FirstOrDefault(d => d.Id == directorId);
movie.Director = director;
return performAddMovie(movie);发布于 2022-09-16 15:29:50
在Movie类中添加了DirectorId属性
发布于 2022-09-16 15:40:17
检查以下代码
Check this following code
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public int DirectorId { get; set; }
[ForeignKey("DirectorId")]
public Director Director { get; set; }
}
public class Director
{
public int DirectorId { get; set; }
public string Name { get; set; }
public ICollection<Movie> DirectedMovies { get; set; }
}https://stackoverflow.com/questions/73747064
复制相似问题