我不断从下面的代码中收到此错误消息。我做错了什么?
LINQ to Entities无法识别方法'System.String ToString(System.Object)'方法,并且此方法无法转换为商店表达式。
var pros = from programs in db.Programs
select new {
programs.ProgramID,
val = (programs.ProgramShortName + " On: " + (Convert.ToString(programs.ProgramStartDate) ?? ""))
};
lbPrograms.DataTextField = "val";
lbPrograms.DataValueField = "ProgramID";
lbPrograms.DataSource = pros;
lbPrograms.DataBind();
答案 0 :(得分:4)
它无法识别string Convert.ToString(object)
...所以...... 不要使用。您可以直接尝试.ToString()
,但坦率地说,我只会选择:
...
select new {
programs.ProgramID,
programs.ProgramShortName,
programs.ProgramStartDate }
并担心本地的任何字符串化。或者至少是一个单独的投影(注意AsEnumerable()
将此组合更改为延迟迭代):
var formatted = from programs in pros.AsEnumberable()
select new {
programs.ProgramID,
val = (programs.ProgramShortName
+ " On: " + (Convert.ToString(programs.ProgramStartDate) ?? "")) };
然后绑定到formatted
。这将对3列进行查询,但在本地格式化。