2016-09-06 66 views
0

我正在創建一個web api。我有兩個表從2個表中獲取詳細信息asp.net web api

Employee_details

​​

Id_details

SlNo  R_ID   L_ID 
1   AC1    L001 
2   AC1    L002 
3   AC1    L003 
4   AC2    L004 
5   AC2    L005 

我創建了RESTful服務的web API。我需要獲取特定Employeeid的所有L_ID。例如,如果我申請employeeid 2022,我應該得到L001 L002和L003。請幫幫我。我首先使用的代碼和使遷移

代碼

Model類

Employee_details.cs

public class Employee_details 
{ 
    public int slNo {get; set;} 
    public string Employeeid {get; set;} 
    public string R_ID {get; set;} 

    //Navigation 
    public Id_details Id_details{get; set;} 
} 

Id_details.cs

public class Id_details 
{ 
    public int slNo {get; set;} 
    public string R_ID {get; set;} 
    public string L_ID {get; set;} 

} 

控制器

創建的表
public IQueryable<Employee_id> Getdetails(string employeeid) 
    { 
     return db.Employee_details 
      .Where(b => b.Employeeid.Equals(employeeid, StringComparison.OrdinalIgnoreCase)).Include(c => c.Id_details); 

    } 

由於表2中的R_ID字段不是主鍵,所以我沒有創建外鍵引用。

+0

添加你的代碼你試過了嗎? –

+0

簡單使用SQL連接將解決你的問題,你爲什麼不試一試? –

+0

使用實體框架? – Dumisani

回答

0

如果您使用Native SQL,則此查詢是您的返回數據。

SELECT ID.L_ID  
     FROM Id_details AS ID 
    INNER JOIN Employee_details ED 
     ON ID.R_ID = ED.R_ID 
    WHERE ED.Employeeid = '2022' 

,或者如果您使用EntitiyFramework

該查詢返回equels R_ID記錄然後設置Employee_details條件

var res = db.Id_details.Join(db.Employee_details, x => x.R_ID , y => y.R_ID , (x, y) => x).ToList(); 

,或者你可以在containsList選擇任何R_ID

var conditionList =db.Employee_details.where(p=>p.Employeeid.equals('2022')).select(p=>p.R_ID); 

然後設置條件使用conditionList搜索

db.Id_details.where(p=> conditionList.contains(p.R_ID)).select (...);