gpt4 book ai didi

linq - 使用LINQ包含嵌套实体

转载 作者:行者123 更新时间:2023-12-03 12:10:04 25 4
gpt4 key购买 nike

我是第一次使用LINQ,并且首先使用EF 4.1代码。

我有包含其他实体的嵌套列表的实体,例如:

class Release
{
int ReleaseID { get; set; }
string Title { get; set; }
ICollection<OriginalTrack> OriginalTracks { get; set; }
}

class OriginalTrack
{
int OriginalTrackID { get; set; }
string Title { get; set; }
ICollection<Release> Releases { get; set; }
ICollection<OriginalArtist> OriginalArtists { get; set; }
}

class OriginalArtist
{
int OriginalArtistID { get; set; }
string Name { get; set; }
ICollection<OriginalTrack> OriginalTracks { get; set; }
}

我想知道在一个LINQ查询中最快的方法是获取 ReleaseID == some value的所有信息。

我已经完成作业,但是找到了需要使用所需数据隐式重建对象(通常是匿名对象)的解决方案。我希望数据以数据库中保留的确切格式从数据库中移出,即,使用相关的ReleaseID拉动Release对象,从而拉出并填充列表中的所有OriginalTrack和OriginalArtist数据。

我知道 Include(),但不确定如何将其应用于多个实体。

所有帮助,不胜感激。

最佳答案

不用担心在这里使用包含

只是做如下的事情

var query = 
from release in ctx.Releases
select new {
release,
originalTracks = from track in release.OriginalTracks
select new {
track,
releases = track.Releases,
orignialArtist = from artist in track.OriginalArtists
select new {
artist,
artist.OriginalTracks
}
}
}

var Releases = query.Select(x => x.Release);

应该加载所有数据

我在这里处理了这篇文章中的信息。

http://blogs.msdn.com/b/alexj/archive/2009/10/13/tip-37-how-to-do-a-conditional-include.aspx

关于linq - 使用LINQ包含嵌套实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7179061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com