带有IN运算符的子查询,用于列出实体框架6

时间:2017-09-14 21:06:53

标签: c# sql entity-framework asp.net-mvc-5

我想使用IN运算符在Entity Framework中执行子查询,然后使用as list并发送到视图。

这是我的SQL代码

select * from famProd where id in (Select famID from appNfam where appID = 1)

这是我的控制器

public ActionResult ProductFamily(int id)
    {
        Session["appID"] = id;

        var famProds = from prodFam in famProd where prodFam.id == (from piv in appNfam where piv.appID  == id);



        return View();

    }

希望你能帮助我

2 个答案:

答案 0 :(得分:0)

尝试这样的事情: -

var appIds   = from piv in appNfam where piv.appID  == id;
var famProds = from p in DbContext.famProd
            where appIds.Contains(p.id)
            select p;  

答案 1 :(得分:0)

使用Navigation properties

DbContext.appNfam.Where(piv => piv.app != null).Select(piv => piv.app)

app在哪里:

public class appNfam
{ ...
    [ForeignKey("appID")] // Or set it in configuration
    public virtual famProd app {get; set;}
}