Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Asp.net mvc 如何从foreach循环中返回逗号分隔的值_Asp.net Mvc_Entity Framework_Linq_Foreach_Linq To Entities - Fatal编程技术网

Asp.net mvc 如何从foreach循环中返回逗号分隔的值

Asp.net mvc 如何从foreach循环中返回逗号分隔的值,asp.net-mvc,entity-framework,linq,foreach,linq-to-entities,Asp.net Mvc,Entity Framework,Linq,Foreach,Linq To Entities,这就是我努力实现的目标: var result = (string)null; foreach (var tagId in MultipleTags) { result = string.Join(",", db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName)); } 这个结果变量应该以逗号分隔的形式保存所有值,而multipleTag包含一组

这就是我努力实现的目标:

var result = (string)null;
foreach (var tagId in MultipleTags)
            { 
              result = string.Join(",", db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName));
            }
这个结果变量应该以逗号分隔的形式保存所有值,而multipleTag包含一组ID,因此它将迭代多次

我该怎么写呢。请推荐我。 我怀疑这行写得是否正确

db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName)
请给我提点建议。

这就有办法了:

//assuming that MultipleTags is an array of "ids"
var result = db.Tags.Where(t => MultipleTags.Contains(t.TagId)).Select(e => e.TagName).ToList().Aggregate((a, b) => a + "," + b);
也试试这个

var result = db.Tags.Where(t => MultipleTags.Contains(t.TagId)).ToList().ForEach((item) =>
            {
               item.TagName = item.id + "," + item.TagName;
            });
试试这个

   var result = (string)null;
   result=string.Join(",", (from a in db.Tags join m in MultipleTags on a.TagId equals m select a.TagName));

假设
Where(t=>t.TagId==tid)
只返回一个值(即
TagId
是unoque键),那么代码将只返回一个值(因此不存在“join”)我知道这就是为什么我问如何将逗号分隔的值返回这个结果变量,因为我必须根据tagId@stephenmueckey选择标记名。你需要一个
.Contains()
来获得所有
标记
匹配的
多个标记
-法比奥·卢兹的答案应该是这样。那么,
结果+=
?阅读并显示示例输入和输出,以及您尝试过的.LINQ to Entities无法识别方法'System.String Aggregate[String](System.LINQ.IQueryable
1[System.String],System.LINQ.Expressions.Expression
1[System.Func`3[System.String,System.String,System.String]]),并且此方法无法转换为存储表达式。这就是我得到的,还有一件事我要传递给控制器IEnumerable MultipleTags作为参数@Fabio Luz