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
只是提供了最基本的五种数据库操作方法——select
、select by id
、update
、add
和delete
.其目的是帮助用户更快、更轻松地构建基本 crud
。您可以在默认代码模板上添加自己的代码。
默认代码模板
添加您自己的代码
在我的项目中,一个显示器应该有很多媒体(图像、视频)。我正在使用 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
只是提供了最基本的五种数据库操作方法——select
、select by id
、update
、add
和delete
.其目的是帮助用户更快、更轻松地构建基本 crud
。您可以在默认代码模板上添加自己的代码。
默认代码模板
添加您自己的代码