2

我的数据库中有两个表处于 1:N 关系中,我想做一个带有预加载的左连接查询。

我的桌子是:

  • Videos( IDVIdeo, Name...)
  • Versions( IDVersion, IDVideo, Name, Avaliable...)

好吧,在一个视频中,我可以有多个版本(DVD、蓝光...等),而一个版本只能属于一个视频。

我想获得至少有一个可用版本的所有视频(也许某个版本拥有一位朋友)。

我想知道我是否至少有一个可以看到的版本,因为我有这个版本。此外,我希望在视频实体中的版本集合中拥有我拥有的所有版本(无论一个版本是否可用,我想知道哪个可用,哪个不可用)。

我该怎么做这个查询?我想使用急切加载只对数据库进行一次查询。我更愿意使用原始 SQL 进行查询,但原始 SQL 不允许使用急切加载。

谢谢

4

1 回答 1

2

在 Video 类中创建将保存版本的导航属性(如果您没有生成它):

public class Video
{
   public Video
   {
       Versions = new HashSet<Version>();
   }

   public int Id { get; set; }
   public string Name { get; set; }

   public virtual ICollection<Version> Versions { get; set; }
}

然后在加载视频时急切加载版本:

var query = db.Videos.Include(v => v.Versions);
于 2013-07-28T07:39:45.087 回答