列表<img/>图像...“Image.Add()”错误:有一些无效的参数

时间:2015-06-25 08:20:48

标签: c# asp.net-mvc linq entity-framework

AllProjectImages.Add(project.ImageSet.Images.ToList());

此行有错误。

  

错误:“Image.Add()”有一些无效的参数

实际上,代码解释了我想做什么。不过我解释一下...... 我们有项目,项目有ImageSet(图片库),ImageSets有图片,所以... 我想在图像列表上完成所有项目图像。

感谢您的帮助......

public ActionResult Index()
    {
        using (var balikciContext = new BalikciContext())
        {
            List<Image> AllProjectImages = new List<Image>();
            foreach (var project in balikciContext.Projects.Include("ImageSet.Images").ToList())
            {
                AllProjectImages.Add(project.ImageSet.Images.ToList());
            }
            var model = new ProjectViewModel
            {
                Projects = balikciContext.Projects.ToList(),
                Images = AllProjectImages
            };
            return View(model);
        }
    }

4 个答案:

答案 0 :(得分:2)

Add()将接受单张图片。使用AddRange()添加图片列表。

所以你只需要更改一行:

AllProjectImages.Add(project.ImageSet.Images.ToList());

要:

AllProjectImages.AddRange(project.ImageSet.Images.ToList());

答案 1 :(得分:1)

似乎您想要使用AddRangeAdd用于单个条目,另一个用于向集合添加集合。

答案 2 :(得分:1)

确切地说,您应该使用AddRange方法。

在向collection添加值时请记住以下几点:

  1. 如果您只是添加少量节点或不经常添加节点,请使用Add方法。
  2. 但是,如果您需要一次添加大量节点,则应使用AddRange

答案 3 :(得分:1)

您也无需转换为致电ToList(),因为AddRange接受IEnumerable<>

AllProjectImages.AddRange(project.ImageSet.Images);