簡體   English   中英

Linq c# 查詢加入兩個多對多關系

[英]Linq c# query to join two many to many relationship

這里我有一個包含許多用戶和資產的組,我想要鏈接到單個用戶的資產列表。 使用 linq 的最佳方式是什么?

 public class Asset
    { 
        public Guid Id { get; set; }
        public virtual ICollection<GroupToAssets> GroupToAssets { get; set; }
    }

 public class User: IdentityUser
    {
       public virtual ICollection<GroupToUsers> GroupToUsers { get; set; }
    }

 public class GroupToAssets
    {     
        public Guid GroupId { get; set; }
        public virtual Group Group { get; set; }
        public Guid AssetId { get; set; }
        public virtual Asset  Asset { get; set; }
    }

 public class GroupToUsers
    {   
        public Guid GroupId { get; set; }
        public virtual  Group Group { get; set; }
        public string UserId { get; set; }
        public virtual User User { get; set; }
    }

我認為以下linq滿足我的情況不知道是否有更好的方法

   var Groups =
 await _Context.Groups.Where(x => x.GroupToUsers.Any(d => d.UserId == UserId && d.GroupId == x.Id)).ToListAsync();
    var assets =
 await _Context.GroupToAssets.Where(x => Groups.Contains(x.Group)).Select(x => new { x.Asset }).Distinct().ToListAsync();

暫無
暫無

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

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