APIController 中的.Include() 方法具有一对多关系?

.Include() method in APIController with one-to-many relations?

在我的项目中,一个显示器应该有很多媒体(图像、视频)。我正在使用 Entity Framework 核心构建我的数据库,并使用我的 API 控制器进行增删改查。

我设计我的模型 类 是这样的:

[Table("Displays")]
public class Display : ConcurrencyCheck
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "{0} skal udfyldes!")]
    [Display(Name = "Display navn")]
    public string Name { get; set; }

    [Display(Name = "Display tændt")]
    public bool IsOn { get; set; }

    [Display(Name = "Display beskrivelse")]
    public string Description { get; set; }

    public IEnumerable<Video> Videos { get; set; }

    public IEnumerable<Image> Images { get; set; }
}

public abstract class Media : ConcurrencyCheck
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "{0} skal udfyldes!")]
    [Display(Name = "Medie navn")]
    public string Name { get; set; }

    [Display(Name = "Medie beskrivelse")]
    public string Description { get; set; }

    [Display(Name = "Medie filtype")]
    public string FileType { get; set; }

    [Required(ErrorMessage = "{0} skal udfyldes!")]
    [Display(Name = "Medie filsti")]
    public string FilePath { get; set; }

    public int? DisplayId { get; set; }

    [ForeignKey("DisplayId")]
    public Display Display { get; set; }
}

[Table("Videos")]
public class Video : Media
{
    [Display(Name = "Frames")]
    public int Frames { get; set; }

    [Display(Name = "Filsti på undetekster")]
    public string SubtitlesPath { get; set; }

    [Display(Name = "Filsti på thumbnail")]
    public string ThumbnailPath { get; set; }
}

[Table("Images")]
public class Image : Media
{
}

public abstract class ConcurrencyCheck
{
    [Timestamp]
    public byte[] RowVersion { get; set; }

    [DataType(DataType.DateTime)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy HH:mm}", ApplyFormatInEditMode = true)]
    public DateTime CreatedDate { get; set; }

    [DataType(DataType.DateTime)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy HH:mm}", ApplyFormatInEditMode = true)]
    public DateTime? UpdatedDate { get; set; }
}

我的 API 控制器是用 'API Controller with actions, using Entity Framework' 搭建的。

目前在 api-controller 'DisplaysController' 中,我没有看到 .Include(x => x.Media),虽然我在某处看到它被使用了?一台显示器应该有很多媒体(图片,视频)。

我应该以某种方式将它包含在某个地方,还是它会由我拥有的模型自动执行?

scaffolded with API Controller with actions, using Entity Framework只是提供了最基本的五种数据库操作方法——selectselect by idupdateadddelete .其目的是帮助用户更快、更轻松地构建基本 crud。您可以在默认代码模板上添加自己的代码。

默认代码模板

添加您自己的代码