2016-09-06 8 views
0

私はWeb APIを作成しています。私はRESTfulサービスでWeb APIを作成した2つのテーブル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 

を持っています。私は特定の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

Entity Frameworkを使用していますか? – Dumisani

答えて

0

ネイティブ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

を使用する場合は、このクエリの戻りはR_IDレコードが、その後

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

か、containsList

に その後、設定
var conditionList =db.Employee_details.where(p=>p.Employeeid.equals('2022')).select(p=>p.R_ID); 

を任意のR_IDを選択することができますEmployee_details条件を設定equels条件を使用した条件リスト検索

db.Id_details.where(p=> conditionList.contains(p.R_ID)).select (...); 
関連する問題