我的数据库中有两个表格采用1:N关系,我想用急切的加载进行左连接查询。
我的表是:
Videos
(IDVIdeo, Name...
)Versions
(IDVersion, IDVideo, Name, Avaliable...
)嗯,在一个视频中,我可以有很多版本(DVD,Blu-Ray等),只有一个版本可以属于视频。
我想获得我所拥有的所有视频至少一个可用版本(也许某些版本拥有一位朋友)。
我想知道我是否至少有一个版本可以看到,因为我有这个版本。另外我想在视频实体中的版本集合中我希望拥有我拥有的所有版本(无论一个版本是否可用,我想知道哪个版本可用,哪个版本没有)。
我该怎么做这个查询?我想使用急切加载只对数据库进行一次查询。我更喜欢使用原始SQL进行查询,但原始SQL不允许使用预先加载。
由于
答案 0 :(得分:2)
在Video类中创建navigation property,它将保留版本(如果你没有生成它):
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; }
}
然后在加载视频时eager loading版本:
var query = db.Videos.Include(v => v.Versions);