我有一个 AlbumArtist 类(这是我的 EF 实体):
public class AlbumArtist : IEquatable<AlbumArtist>
{
public int Id { get; set; }
public string Title { get; set; }
public virtual List<Album> Albums { get; set; }
public bool Equals(AlbumArtist albumArtist)
{
return Title.Equals(albumArtist.Title);
}
public override int GetHashCode()
{
return Title.GetHashCode();
}
}
还有一个 Album 类(这也是我的 EF 实体):
public class Album : IEquatable<Album>
{
public int Id { get; set; }
public string Title { get; set; }
public virtual List<AlbumArtist> AlbumArtists { get; set; }
public bool Equals(Album album)
{
return Title.Equals(album.Title);
}
public override int GetHashCode()
{
return Title.GetHashCode();
}
}
所以,如您所见,我有多对多关系。
我创建一个列表,填充它,然后使用 DbContext 保存它,然后创建并填充第二个列表。然后我尝试合并这两个列表(一个来自 DbContext,第二个来自局部变量)并将结果也保存到 DbContext(插入新实体并更新现有实体)。
我的两个列表中有以下数据:
--Infected Mushroom
----Classical Mushroom
----Converting Vegetarians
...
--Infected Mushroom
----The Gathering
----Converting Vegetarians
--Skazi
...
我尝试获取以下数据:
--Infected Mushroom
----Classical Mushroom
----The Gathering
----Converting Vegetarians
--Skazi
...
请帮助我编写一些 LINQ 查询来实现我的目标。
谢谢!
最佳答案
借助 SelectMany
函数,可以使用 LINQ 实现这一点。
您可以找到SelectMany
的示例 Here
关于c# - 使用 LINQ 联合两个嵌套 List<object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635076/