C# 如何在Asp.NETWebAPI中处理多对多数据库
我正在开发一个ASP.NETWebAPI,我一直在绞尽脑汁,但到目前为止,我与多对多的关系还不太好。 我正在做一个MVC项目 我有3个表类,如下所示: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
[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);
}
}