从多对多关系中检索对象

时间:2016-04-18 21:22:34

标签: c# entity-framework entity-framework-6 many-to-many

我正在使用Entity Framework Code First,我的模型中有以下对象:

cp -f  A.png

我正在我的数据访问层中实施一个方法,以检索所选$(...)之一中的所有$(IMGS): $(SRC_IMG_DIR)/$$@

public class Category {
    [DatabaseGenerated( DatabaseGeneratedOption.Identity ), Key]
    public int CategoryId { get; set; }

    [Required, MaxLength( 128 ), Index( IsUnique = true)]
    public string CategoryName { get; set; }

    public string Description { get; set; }

    public virtual ICollection<Article> Articles { get; set; }
}

public class Article {
    [DatabaseGenerated( DatabaseGeneratedOption.Identity ), Key]
    public int ArticleId { get; set; }

    [Required, MaxLength( 128 ), Index]
    public string ArticleName { get; set; }

    public string Description { get; set; }

    public virtual ICollection<Category> Categories { get; set; }
}

我的问题:如何构建查询表达式?如果我在SQL中这样做,我会写一个这样的查询:

Articles

这是否意味着我会这样写这个?

Categories

唯一的问题是IEnumerable<Article> GetArticles( int[] categoryIds ); 类没有SELECT a.* FROM Articles a JOIN ArticlesInCategories AS aic ON a.ArticleId = aic.ArticleId JOIN Categories AS c on aic.CategoryId = c.CategoryId WHERE c.CategoryId IN ( . . . ) 属性。

如何构建此查询?

1 个答案:

答案 0 :(得分:1)

您需要撤消查询并使用SelectMany()

.directive('customDir', function() {
    return {
        link: function(scope, element, attrs) {
            scope[attrs.customDir] += ' Word';
        }
    }
});