C# 如何在Asp.NETWebAPI中处理多对多数据库

C# 如何在Asp.NETWebAPI中处理多对多数据库,c#,asp.net-mvc,asp.net-web-api,many-to-many,C#,Asp.net Mvc,Asp.net Web Api,Many To Many,我正在开发一个ASP.NETWebAPI,我一直在绞尽脑汁,但到目前为止,我与多对多的关系还不太好。 我正在做一个MVC项目 我有3个表类,如下所示: [Table("Emails")] public class Email { public int Id { get; set; } public string EmailAddress { get; set; } } [Table("Reports")] public cla

我正在开发一个ASP.NETWebAPI,我一直在绞尽脑汁,但到目前为止,我与多对多的关系还不太好。 我正在做一个MVC项目

我有3个表类,如下所示:

 [Table("Emails")]
    public class Email
    {
        public int Id { get; set; }

        public string EmailAddress { get; set; }
    }

[Table("Reports")]
    public class Report
    {
        public int Id { get; set; }

        public string Name { get; set; }
    }

 [Table("ReportsAndEmails")]
    public class ReportAndEmail
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Id { get; set; }

        public int EmailID { get; set; }

        public int ReportID { get; set; }
    }
在表ReporsAndEmails上,我有两个外键,Email表中的Id是EmailID的外键,Report中的Id是ReportID的外键。一切都如我所料。但我想能够做到的是,我想向用户显示ReportAndEmail表中的所有记录,但不是显示EmailID,而是匹配Email表中的id,并显示EmailAddress以及ReportID的相同方式。我希望将reportID与报表表的ID匹配,并显示名称


我知道我可以通过加载所有的表和匹配的数据来破解代码,从而在客户端显示这一点,但我知道这种方法太愚蠢了。但是我正在做一个API web项目,所以我想在服务器端而不是客户端处理这个问题。我的问题是,处理这个问题的最佳方式是什么?我该怎么办?非常感谢您对此发表任何评论。

我想您正在寻找Linq join

页面上的“搜索联接”有以下示例,但您需要以类似的方式联接3个表

public void Linq102() 
{ 

string[] categories = new string[]{  
    "Beverages",   
    "Condiments",   
    "Vegetables",   
    "Dairy Products",   
    "Seafood" };  

List<Product> products = GetProductList(); 

var q = 
    from c in categories 
    join p in products on c equals p.Category 
    select new { Category = c, p.ProductName }; 

foreach (var v in q) 
{ 
    Console.WriteLine(v.ProductName + ": " + v.Category);  
} 
}