使用 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));
}
大家好,
我有 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));
}