c# - 使用 LINQ 联合两个嵌套 List<object>

标签 c# linq entity-framework

我有一个 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/

相关文章:

c# - 总和列表到新列表

c# - Linq 查询计数和 GroupBy

c# - MVC 3 - 如何实现服务层,我需要存储库吗?

entity-framework - 为什么 DbContext 实现了 IObjectContextAdapter 但没有公共(public) ObjectContext 属性

c# - 如何强制解耦对象之间的约束?

c# - C# 如何计算包含赋值的表达式?

c# - 验证日期文本框

c# - 一起调试托管和非托管代码

c# - RavenDB Linq 无效操作.ToUpperInvariant()

c# - Entity Framework 代码优先和 ironpython