【问题标题】:ASP.Net core - make a search inside a nested collectionASP.Net 核心 - 在嵌套集合中进行搜索
【发布时间】: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);

    }
}

有人可以向我解释一下如何在嵌套集合上实现这样的搜索吗?

【问题讨论】:

    标签: asp.net-core asp.net-identity


    【解决方案1】:

    使用依赖注入注入你的 AppUser user (最好使用存储库模式)无论如何它应该是这样的:user.Heroes.PowerUps.OrderBy(x=&gt;x.PowerUpDate == Datetime.Now).ToList();

    x.PowerUpDate == 您将插入的任何日期

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 2023-03-20
      • 2020-09-06
      • 2011-09-14
      • 2021-12-01
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多