ASP.Net 核心 - 在嵌套集合中进行搜索
Posted
技术标签:
【中文标题】ASP.Net 核心 - 在嵌套集合中进行搜索【英文标题】:ASP.Net core - make a search inside a nested collection 【发布时间】:2021-12-18 03:47:03 【问题描述】:我正在尝试进行嵌套集合搜索,但我真的很挣扎。
我的预期结果是:我想搜索并找到某个日期之前的所有 powerUp 对象。 (PowerUpDate 属性 - 这是搜索条件)
用户模型:
public class AppUser : IdentityUser
public ICollection<Hero> Heroes get; set;
英雄模型:
[Table("Heroes")]
public class Hero
public int Id get; set;
[Required]
public string Name get; set;
[Required]
public string Ability get; set;
[Required]
public string SuitColors get; set;
public double CurrentPower get; set;
public double StartingPower get; set;
public DateTime Created get; set; = DateTime.Now;
public ICollection<PowerUp> PowerUps get; set;
public AppUser AppUser get; set;
[Required]
public string AppUserId get; set;
加电模型:
[Table("PowerUps")]
public class PowerUp
public int Id get; set;
[Required]
public double PowerUpIncrement get; set;
[Required]
public DateTime PowerUpDate get; set; = DateTime.Now;
public Hero Hero get; set;
[Required]
public int HeroId get; set;
数据上下文:
public class DataContext : IdentityDbContext<AppUser>
public DataContext(DbContextOptions options) : base(options)
protected override void OnModelCreating(ModelBuilder builder)
base.OnModelCreating(builder);
builder.Entity<Hero>().HasMany(hero => hero.PowerUps).WithOne(powerUp => powerUp.Hero)
.OnDelete(DeleteBehavior.Cascade);
builder.Entity<AppUser>().HasMany(user => user.Heroes).WithOne(hero => hero.AppUser)
.OnDelete(DeleteBehavior.Cascade);
有人可以向我解释一下如何在嵌套集合上实现这样的搜索吗?
【问题讨论】:
【参考方案1】:使用依赖注入注入你的 AppUser user
(最好使用存储库模式)无论如何它应该是这样的:user.Heroes.PowerUps.OrderBy(x=>x.PowerUpDate == Datetime.Now).ToList();
x.PowerUpDate == 您将插入的任何日期
【讨论】:
以上是关于ASP.Net 核心 - 在嵌套集合中进行搜索的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构