gpt4 book ai didi

c# - 使用 Entity Framework 搜索单个项目并将其作为数据传输对象返回?

转载 作者:行者123 更新时间:2023-11-30 20:26:10 25 4
gpt4 key购买 nike

我正在使用 Entity Framework 并尝试在数据库中搜索基于主键的单个对象。

我有一个电影数据库,它在其他表中也有一些关系数据。

这是我目前使用的:

Movie newMovie = MovieRepository.FindSingle(id);

但这也会返回该行的所有关系。

我创建了一个名为 MovieDetails 的数据传输对象,它只包含以下字段:

public class MovieDetails
{
public int MovieID { get; set; }
public string MovieName { get; set; }
public int? BroughtBy { get; set; }
public string Director { get; set; }
public int? Rating { get; set; }
}

我试过用这个搜索数据库,但没有成功。

public MovieDetails FindSingle(int? id)
{
MovieDetails newMovieDetails = dbContext.Movies.Select(x => new MovieDetails
{
MovieID = (int)id,
MovieName = x.MovieName,
BroughtBy = (int)x.BroughtBy,
Director = x.Director,
Rating = (int)x.Rating
}).FirstOrDefault();

如何在数据库中搜索单行并将其转换为这种MovieDetails 格式?

最佳答案

使用Where()过滤记录,然后使用Select()FirstOrDefault():

MovieDetails newMovieDetails = dbContext.Movies.Where(x => x.ID == id).Select(x => new MovieDetails
{
MovieID = x.ID,
MovieName = x.MovieName,
BroughtBy = (int)x.BroughtBy,
Director = x.Director,
Rating = (int)x.Rating
}).FirstOrDefault();

并替换这一行:

Movie newMovie = MovieRepository.FindSingle(id);

由这个:

MovieDetails newMovieDto = MovieRepository.FindSingle(id);

关于c# - 使用 Entity Framework 搜索单个项目并将其作为数据传输对象返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50372251/

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