使用 ICollection 从主要详细信息获取子详细信息时的一对多关系问题

One to Many Relationship Issue In Getting Sub Details from Main Details with ICollection

大家好,

我有 2 个模型样本,它们彼此之间存在关系。一对多关系

// Main model
public class MainDetails {
   [Key]
   public int MainDetailId { get; set; }
   public string Name { get; set; }
   public ICollection<SubDetails> SubDetails { get; set; }
}

// Sub model
public class SubDetails {
   [Key]
   public int SubDetailId{ get; set; }
   public string School { get; set; }

   public MainDetails MainDetails { get; set; }
   public int MainDetailId { get; set; }
}

现在这是我遇到问题的代码。

public IQuerable<MainDetails> SearchDetails(string school){
     return context.MainDetails.Where(details=>details.SubDetails.School == school) 
     // details.SubDetails.School is an ICollection so this not working.
}

public IQuerable<MainDetails> SearchDetails(string school){
     return context.MainDetails.Inclue(x=>x.SubDetails).Where(details=>details.SubDetails.School == school) 
     // This doesn't work too
}

为什么我无法获得SubDetails.School?或者有什么办法可以解决这个问题?

抱歉,我是新手。我希望你能分享给我一些。谢谢!

这段代码甚至不应该被编译...

public IQuerable<MainDetails> SearchDetails(string school)
{
     return context.MainDetails.Where(details=>details.SubDetails.School == school) 
     // details.SubDetails.School is an ICollection so this not working.
}

你应该需要...

public IQuerable<MainDetails> SearchDetails(string school)
{
     return context
                .MainDetails
                .Where(details=> 
                    details.SubDetails.Any(sd => sd.School == school));
}