簡體   English   中英

具有實體和分組依據的Linq查詢

[英]Linq Query With Entities and Group By

我有如下所示的實體(首先使用.NET代碼和存儲庫模式):

public abstract class BaseContent : Entity
{
    public Guid ID { get; set; }
    public virtual ICollection<AssignedMedia> AssignedMedias { get; set; }
}

public partial class Library : BaseContent
{
    public Library()
    {
        this.AssignedMedias = new List<AssignedMedia>();
    }
}

public class Media : BaseContent
{
    public Media()
    {
        this.AssignedMedias = new List<AssignedMedia>();
    }
}

public class AssignedMedia : Entity
{
    public int ID { get; set; }

    //BaseContent reference ID
    public Guid AssignedId { get; set; }

    public Guid MediaId { get; set; }

    public virtual Media Media { get; set; }
    public virtual BaseContent BaseContent { get; set; }
}

然后我嘗試以分組方式獲取查詢(如Dictionary <string,List <Media >>)! 例如:

var list = from bc in Libraries
    join a in AssignedMedias on bc.ID equals a.AssignedId
    join m in Medias on a.MediaId equals m.ID
    select new {
        LibraryName = bc.Name, MediaList = ??? 
    };

你並不需要使用一個join時,你已經正確映射實體關聯。 您可以這樣編寫查詢:

var libraryAssignedMedia = Libraries.ToDictionary(
    l => l.Name, // Key selection.
    l => l.AssignedMedias.Select(am => am.Media)); // Value selection.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM