2014-09-10 83 views
0

我是Entity Framework的新手。將sql語句轉換爲linq-sql的問題

我有3張桌子。

Candidats : Id,cin 
Poste : Id 
PosteCandidats : candidat_id, poste_id 

我想,有一個candidat(CIN = 'abc15' 和poste_id = 3)

我試過,但它給了我一個錯誤

select * from Candidats where 
id=(select Candidat_Id from PosteCandidats where Poste_Id=3) 
and num_cin='abc15'; 

之後,我想將其轉換爲Linq查詢。

編輯:

我的模型:

public class Candidat 
{ 
    public int Id { set; get; } 
    public string num_cin { set; get; } 
    public ICollection<Poste> postes { get; set; } 
} 

public class Poste 
{ 
    public int Id { set; get; } 
    public string poste_name {set;get} 
    public List<Candidat> candidats {set;get;} 
} 

這產生的關聯表PosteCandidats。

+1

您顯示的代碼是tsql而不是linq查詢。你到目前爲止嘗試過linq查詢嗎? – 2014-09-10 11:00:08

+0

是的,我知道,因爲它不工作!我的目標是讓它在LIN查詢 – saidmohamed11 2014-09-10 11:04:02

回答

0

linq查詢可能看起來像這樣。

var myEntities = ...; // db context 

var query = myEntities.Candidats 
       .Where(c => c.num_cin == "abc15" 
       && c.Postes.Any(pc => pc.Id == 3)) 
var candidat = query.FirstOrDefault(); 
+0

它給了我PosteCandidats不存在myEntities數據庫上下文(因爲它是一個關聯表!!!) – saidmohamed11 2014-09-10 11:30:44

+0

張貼您的模型,我不能只想象你的類結構沒有看到代碼! ! – 2014-09-10 11:37:07

+0

我編輯了問題 – saidmohamed11 2014-09-10 11:43:07