将sql语句转换为linq-to-sql的问题

时间:2014-09-10 10:34:34

标签: asp.net-mvc entity-framework linq-to-sql

我是Entity Framework的新手。

我有3张桌子。

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

我想得到一个候选人(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 个答案:

答案 0 :(得分: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();