簡體   English   中英

如何在Asp.Net Web API中處理多對多數據庫

[英]How to deal with Many to Many database in Asp.Net Web API

我正在使用ASP.Net Web API,但我一直不知所措,但到目前為止,由於多對多關系,我沒有運氣。 我正在做一個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上,我有兩個外鍵,電子郵件表中的ID是EmailID的外鍵,報表中的ID是ReportID的外鍵。 一切正常。 但是我希望能夠向用戶顯示ReportAndEmail表中的所有記錄,但是與其顯示EmailID,不如匹配Email表中的ID並顯示EmailAddress和ReportID的相同方式。 我要o將reportID與他的報告表ID匹配,並改為顯示Name。

我知道我可以通過加載所有表和匹配數據來破解在客戶端顯示該代碼的代碼,但是我知道這種方法很愚蠢。 但是我正在制作一個API Web項目,因此我想在服務器端而不是客戶端端處理。 我的問題是,處理此問題的最佳方法是什么? 我該怎么辦? 任何對此的評論都受到高度贊賞。

我認為您正在尋找Linq加入。

http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b (在頁面上搜索“ 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);  
} 
}

暫無
暫無

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

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