里面我创建一个的SelectList从LINQ查询填充的下拉列表。这工作:转换诠释为String LINQ表达式
// my temp class for including the member count
public class GroupWithCount
{
public string group_name { get; set; }
public int group_id { get; set; }
public int members { get; set; }
}
var groups = from g in DB.Groups
where g.user_id == user_id
let mC = (from c in DB.Contacts where c.group_id == g.group_id select c).Count()
select new GroupWithCount
{
members = mC,
group_id = g.group_id,
group_name = g.group_name
};
model.Groups = new SelectList(groups, "group_id", "group_name");
不过,我想选择信息文本是格式“GROUP_NAME(成员)”,但我似乎无法做到这一点。如果我尝试
select new GroupWithCount
{
members = mCount,
group_id = g.group_id,
group_name = g.group_name + mCount
};
我得到“无法投类型‘System.Int32’输入‘System.Object的’,”如果我尝试
group_name = g.group_name + mCount.ToString()
我得到“LINQ到实体不识别方法'System.String ToString()'方法“。如果我尝试
group_name = string.Format("{0}{1}", g.group_name,mCount)
我得到 “LINQ到实体无法识别方法 'System.String格式(System.String,System.Object的,System.Object的)' 方法”。
它只是不会让我转换是的Int32成一个字符串。看起来唯一的选择是创建一个遍历GroupWithCount对象并创建一个SelectListItems集合的foreach方法,但这是疯狂的。一定会有更好的办法!
工作!我知道必须有一个更简单的方法。谢谢! – roryok