Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不支持ToString()方法_C#_Database_Linq To Sql - Fatal编程技术网

C# 不支持ToString()方法

C# 不支持ToString()方法,c#,database,linq-to-sql,C#,Database,Linq To Sql,我正在尝试用c#创建一个选择列表。我的代码: var ceremonies = db.Ceremonies; var Ceremonies = from c in ceremonies select new SelectListItem { Text = c.Name + "_" + c.Date, Value = c.Id.ToS

我正在尝试用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()
                           });
顺便说一句,声明两个局部变量只因大小写的不同而不同,这使得可读性非常差