Я использую Entity Framework Core 2.0.1, и у меня есть следующие модели
public class Article
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
public string Slug { get; set; }
public int Approved { get; set; }
public DateTime ArticleDate { get; set; }
// ... some other fields
public virtual ICollection<ArticleCategoryRelation> ArticleCategoryRelations { get; set; }
}
public class ArticleCategory
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
//... soem other fields
[ForeignKey("ArticleCategoryParent")]
public int? ArticleCategoryParentID { get; set; }
public virtual ArticleCategory ArticleCategoryParent { get; set; }
public virtual ICollection<ArticleCategory> SubCategories { get; set; }
public virtual ICollection<ArticleCategoryRelation> ArticleCategoryRelations { get; set; }
}
public class ArticleCategoryRelation
{
[Column(Order = 0)]
public int ArticleId { get; set; }
public Article Article { get; set; }
[Column(Order = 1)]
public int ArticleCategoryId { get; set; }
public ArticleCategory ArticleCategory {get; set;}
}
Каждая статья относится к одной или нескольким категориям.Категории могут иметь родительскую категорию.
Я хочу получить из базы данных последние две статьи (где Approved = 1) с подробными сведениями о соответствующей категории, для каждой категории, которая принадлежит родительской категории, идентификатор которой указан в качестве входного.
Я пытался, но безуспешно.Я не могу отфильтровать результаты объекта .Include()
.Возможно ли ... или я не знаю, как это сделать?
Все мои данные доступны через структуру сущностей с помощью appContext
(контекст, используемый для получения сущностей из базы данных).Могу ли я достичь того, что хочу, через ядро Entity Framework (лямбда-выражение предпочтительнее, чем Linq, если это возможно), или мне следует использовать библиотеку ADO.NET (которую я знаю, как выполнять пользовательские запросы).
PS Я хочуполучить данные только для отображения в представлении ... редактирование не требуется.