在Entity Framework中从集合中加载相关实体

3

如何从已加载的集合中加载相关实体:

集合:

public class Ad
{
    // Primary properties
    [Key]
    public int Id { get; set; }
    private ICollection<Feature> _features;
    public virtual ICollection<Feature> Features
    {
      get { return _features ?? (_features = new HashSet<Feature>()); }
      set { _features = value; }
    }
}

特点:

public class Feature
{
    // Primary properties
    public int Id { get; set; }
    public string Name { get; set; }

    // Navigation properties
    public virtual ICollection<Ad> Ads { get; set; }
    public Keyword Keyword { get; set; }
}

关键词:
public class Keyword
{
    // Primary properties
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsActive { get; set; }
}

我需要为广告中的所有特征加载实体关键字。
谢谢。
1个回答

0
在你的存储库类中尝试:
public Ad GetAd(int id)
{
     return _database.Set<Ad>().Include(ad => ad.Features.Select(feature => feature.Keyword)).FirstOrDefault(ad => ad.Id == id);
}

嗨,谢谢。问题在于我使用了一个带有Get、Ad等方法的存储库。 - Patrick
@Patrick,主要思路是.Include(ad => ad.Features.Select(feature => feature.Keyword))。或者你能展示一下你的存储库是如何实现的吗? - Dmytro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接