Problem with converting int to string in Linq to entities
With EF v4 you can use SqlFunctions.StringConvert
. There is no overload for int so you need to cast to a double or a decimal. Your code ends up looking like this:
var items = from c in contacts select new ListItem { Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(), Text = c.Name };
I solved a similar problem by placing the conversion of the integer to string out of the query. This can be achieved by putting the query into an object.
var items = from c in contacts select new { Value = c.ContactId, Text = c.Name };var itemList = new SelectList();foreach (var item in items){ itemList.Add(new SelectListItem{ Value = item.ContactId, Text = item.Name });}
Use LinqToObject : contacts.AsEnumerable()
var items = from c in contacts.AsEnumerable() select new ListItem { Value = c.ContactId.ToString(), Text = c.Name };