我是C#和实体框架核心的新手。我找了很多这个问题,但没有找到答案。我有以下三种模式(我已将其简化):
public class Exercise
{
public int ExerciseId { get; set; }
[Required]
public string ExerciseName { get; set; }
public string Filename { get; set; }
public ICollection<ExerciseClinicalPicture> ExerciseClinicalPicture { get; set; }
}
public class ClinicalPicture
{
[Key]
public int ClinicalPictureId { get; set; }
[Required]
[Display(Name = "Krankheitsbild")]
public string ClinicalPictureName { get; set; }
public ICollection<ExerciseClinicalPicture> ExerciseClinicalPicture { get; set; }
}
public class ExerciseClinicalPicture
{
[Key]
public int ExerciseClinicalPictureId { get; set; }
public int ExerciseId { get; set; }
public Exercise Exercise { get; set; }
public int ClinicalPictureId { get; set; }
public ClinicalPicture ClinicalPicture { get; set; }
}现在,我想要一个查询,其中的结果是所有练习的集合,这些练习与某个临床图片相关,并且包含了clinicalPicture。
就像这样:
int id = 1;
exercises = _context.Exercise.Where(e => e.ExerciseClinicalPicture.ClinicalPictureId == id)
.Include(m => m.ExerciseClinicalPicture)
.ThenInclude(m => m.ClinicalPicture);此查询引发错误,因为我无法对ClinicalPictureId集合调用ExerciseClinicalPicture。
希望我的问题是这样的。这是我第一次问关于Stackoverflow的问题。
非常感谢你的帮助
发布于 2016-12-09 16:19:05
改变这一点:
exercises = _context.Exercise.Where(e => e.ExerciseClinicalPicture.ClinicalPictureId == id)对此:
exercises = _context.Exercise.Where(e => e.ExerciseClinicalPicture.Any(ec => ec.ExerciseId == id))基本上,“在运动的任何临床图片包含给定的锻炼ID的情况下,获取锻炼。”在您的模型中,ExerciseClinicalPicture是一个集合。你得再挖一遍。您的错误是该属性不存在,因为它是一个集合。
你就会这样质疑它。然后你就可以像平时一样做你的包括。
https://stackoverflow.com/questions/41064445
复制相似问题