Linq to sql where [column] in(值列表与其他架构)

问题描述 投票:0回答:1

所以这是一个加入:

var multipleSites = (from cs in dc.CUsersSites
                            join c in dc.CUsers on cs.UserId equals c.UserId
                            where cs.Cid == int.Parse(Session["Cid"].ToString()) && c.UserName == HttpContext.Current.User.Identity.Name
                            select cs).ToList();

架构

CUsersSites (id, UserId, Cid, Siteid)
CUsers (id, UserId, UserName)
Sites (id, Cid, Siteid, FullName)

我怎么能得到所有Sites SiteidmultipleSites列表?

我试过了:

this.SitesStore.DataSource = from s in dc.Sites
                                  where s.Cid == int.Parse(Session["Cid"].ToString()) && ( multipleSites.Contains(s.Siteid))
                                  select s;

但我得到这个错误:

参数1:无法从'int'转换为'DAL.CUsersSite'

linq-to-sql
1个回答
1
投票

尝试这种方法:

this.SitesStore.DataSource = 
dc.Sites.Where(s => multipleSites.Select(ms => ms.Siteid )
.Contains(s.Siteid) && s.Cid == int.Parse(Session["Cid"].ToString())).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.