我正在尝试在 C# 中创建一个选择列表。我的代码:
var ceremonies = db.Ceremonies;
var Ceremonies =
from c in ceremonies
select new SelectListItem
{
Text = c.Name + "_" + c.Date,
Value = c.Id.ToString()
};
但是我在这里遇到类似ToString() 方法不受支持
的异常。有什么问题吗?
最佳答案
您的查询正在转换为 SQL - 但无法正确处理对 ToString
的调用。通常,解决此问题的最简单方法是将查询有效地拆分为需要在数据库中完成的部分,然后通过 AsEnumerable
切换到 LINQ to Objects:
var ceremonies = db.Ceremonies
.Select(c => new { c.Name, c.Date, c.Id }
.AsEnumerable()
.Select(c => new SelectListItem {
Text = c.Name + "_" + c.Date,
Value = c.Id.ToString()
});
顺便说一句,声明两个只根据大小写变化的局部变量会带来非常糟糕的可读性。
关于c# - 不支持 ToString() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819673/