title: Map collection of objects
body: <p>I am trying to introduce Automapper into an application for the first time, but I keep getting an error saying I have some invalid arguments.</p>
  
  <p>My model:</p>
  
  <pre><code>namespace StoreGradesLib.Models
  {
      public class Store
      {
          [Key]
          public int StoreID { get; set; }
  
          [Required]
          [MaxLength(120)]
          public string StoreName { get; set; }
  
          [Required]
          [MaxLength(20)]
          public string StoreNumber { get; set; }
  
          [Required]
          [MaxLength(120)]
          public string ManagerName { get; set; }
  
          [Required]
          public long PhoneNumber { get; set; }
  
          [Required]
          public string AddressLine1 { get; set; }
  
          public string AddressLine2 { get; set; }
  
          [Required]
          public string Postcode { get; set; }
  
          [Required]
          public int WallArea { get; set; }
  
          [Required]
          public int FloorArea { get; set; }
  
          [Required]
          public int NumWindows { get; set; }
  
          [Required]
          public int NumDesks { get; set; }
  
          [Required]
          public int NumDoors { get; set; }
  
          [Required]
          public int StoreGradeID { get; set; }
  
          [Required]
          public bool Active { get; set; }
  
          public virtual StoreGrade StoreGrade { get; set; }
  
          [Timestamp]
          public Byte[] Timestamp { get; set; }
      }
  }
  </code></pre>
  
  <p>My View Model:</p>
  
  <pre><code>namespace StoreGradesLib.ViewModels
  {
      public class StoreVM
      {
          public int StoreID { get; set; }
          public bool Active { get; set; }
          public Byte[] Timestamp { get; set; }
  
          [Required(ErrorMessage = "Store Name is required.")]
          [Display(Name = "Store Name")]
          public string StoreName { get; set; }
  
          [Required(ErrorMessage = "Store Number is required")]
          public string StoreNumber { get; set; }
  
          [Required(ErrorMessage = "Store Manager is required.")]
          [Display(Name = "Manager Name")]
          public string ManagerName { get; set; }
  
          [Required(ErrorMessage = "Contact Number is required.")]
          [Display(Name = "Phone Number")]
          public int PhoneNumber { get; set; }
  
          [Required(ErrorMessage = "Address Line 1 is required.")]
          [Display(Name = "Address Line 1")]
          public string AddressLine1 { get; set; }
  
          [Display(Name = "Address Line 2")]
          public string AddressLine2 { get; set; }
  
          [Required(ErrorMessage = "Postcode is required.")]
          public string Postcode { get; set; }
  
          [Required(ErrorMessage = "Must input wall area.")]
          [Display(Name = "Wall Area")]
          public int WallArea { get; set; }
  
          [Required(ErrorMessage = "Must input floor area.")]
          [Display(Name = "Floor Area")]
          public int FloorArea { get; set; }
  
          [Required(ErrorMessage = "Must input number of windows.")]
          [Display(Name = "Windows")]
          public int NumWindows { get; set; }
  
          [Required(ErrorMessage = "Must input number of desks.")]
          [Display(Name = "Desks")]
          public int NumDesks { get; set; }
  
          [Required(ErrorMessage = "Must input number of doors.")]
          [Display(Name = "Doors")]
          public int NumDoors { get; set; }
  
          [Required(ErrorMessage = "Store must have a grade.")]
          public StoreGrade StoreGradeID { get; set; }
  
          public string Address
          {
              get
              {
                  return StoreName + " " + AddressLine1 + " " + AddressLine2 + " " +                 Postcode;
              }
          }
      }
  }
  </code></pre>
  
  <p>Created mappings:</p>
  
  <pre><code>CreateMap&lt;Store, StoreVM&gt;();
  CreateMap&lt;StoreVM, Store&gt;();
  </code></pre>
  
  <p>Within my controller, I am trying to map a selection of stores to storeVM. I am currently getting my stores as so;</p>
  
  <pre><code>var stores = db.Store.Include(s =&gt; s.StoreGrade);
  stores = from s in db.Store.Where(s =&gt; s.Active.Equals(true))
                   select s;
  </code></pre>
  
  <p>I am wanting to map the selection of stores to StoreVM, I have tried the following, but i get an invalid parameters warning,</p>
  
  <pre><code>var VMstores = Mapper.Map&lt;Store, StoreVM&gt;(stores);
  </code></pre>
  
  <p>I am receiving the error that the best overloaded method match has some invalid arguments.</p>
  
  <p>Can anyone point me in the right direction?</p>