I have this lambda expression:
this.SitesStore.DataSource =
dc.Sites.Where(s => multipleSites.Select(ms => ms.Siteid )
.Contains(s.Siteid) && s.Cid == int.Parse(Session["Cid"].ToString())).ToList();
But I want to modify it with this Select new instead of Select(ms => ms.Siteid):
Select new { s.Cid, s.Siteid, FullName = dc.fn_GetSiteid(int.Parse(Session["Cid"].ToString()), s.Siteid) + " - " + s.FullName, s.Title, s.Address, s.Phone }
if I just add this Select new I get this error:
'System.Linq.IQueryable' does not contain a definition for 'Contains' and the best extension method overload 'Ext.Net.Utilities.StringUtils.Contains(string, params string[])' has some invalid arguments
multipleSites:
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();
Schemas
CUsersSites (id, UserId, Cid, Siteid)
CUsers (id, UserId, UserName)
Sites (id, Cid, Siteid, FullName)
Select new { ... }but you can useSelect(ms => new { ... })Containsmethod should be used on and array, but your newSelect(s => new { ... })returns an anonymous type objects array.