请问在asp.net ,mvc中列表提取语句中的字段是数值型的,如何解决?

sunck1970 2014-06-05 03:53:27
ViewData["MovieGenres"] = from a in db.MovieGenres
orderby a.Name
select new SelectListItem
{
Text = a.Name,
Value = a.ID
};
这样写编译通不过
如果改成 Value = a.ID.toString()
执行的时候报错
{"LINQ to Entities 不识别方法“System.String ToString(Int32)”,因此该方法无法转换为存储表达式。"}
...全文
176 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
嫣如舜华 2014-06-09
  • 打赏
  • 举报
回复
引用 7 楼 sunck1970 的回复:
试了不行,提示有错的
我们之前的项目都是这样转换的 你那边报了什么错误?
sunck1970 2014-06-09
  • 打赏
  • 举报
回复
试了不行,提示有错的
嫣如舜华 2014-06-09
  • 打赏
  • 举报
回复
我那个方法你也可以试试 可以解决更多的转换 包括一些复杂的需要使用方法返回值的
sunck1970 2014-06-09
  • 打赏
  • 举报
回复
也可以不定义类,这样很简单 var MovieGenresQry = from a in db.MovieGenres orderby a.Name select new { Text = a.Name, Value = a.ID }; ViewData["MovieGenres"] = new SelectList(MovieGenresQry, "Value", "Text");
sunck1970 2014-06-08
  • 打赏
  • 举报
回复
在微软论坛问了一下,找到答案了 重新定义一个value属性为数值的类就可以了 class NewSelectListItem { public string Text { get; set; } public int Value { get; set; } } 然后使用这个类即可 var MovieGenresQry = from a in db.MovieGenres orderby a.Name select new NewSelectListItem { Text = a.Name, Value = a.ID } ; ViewData["MovieGenres"] = new SelectList(MovieGenresQry, "Value", "Text");
嫣如舜华 2014-06-06
  • 打赏
  • 举报
回复
  var list = from a in db.MovieGenres
             orderby a.Name
             select new SelectListItem
             {
                 Text = a.Name,
                 Value = a.ID
             };

  var list2 = list.Tolist().Select(O=>new{
              Text = a.Name,
              Value = a.ID.ToString();
  });
  • 打赏
  • 举报
回复
没看懂 你调试下吧
sunck1970 2014-06-06
  • 打赏
  • 举报
回复
晕,这个问题怎么没人回答啊,很难吗?还是我给的分少了啊

62,253

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧