public EmployeeWithJobDuties EmployeeEditJobDuties(EmployeeEditJobDuties newItem)
{
// Attempt to fetch the object
// When editing an object with a to-many collection,
// and you wish to edit the collection,
// MUST fetch its associated collection
var o = ds.Employees.Include("JobDuties")
.SingleOrDefault(e => e.Id == newItem.Id);
if (o == null)
{
// Problem - object was not found, so return
return null;
}
else
{
// Update the object with the incoming values
// First, clear out the existing collection
o.JobDuties.Clear();
// Then, go through the incoming items
// For each one, add to the fetched object's collection
foreach (var item in newItem.JobDutyIds)
{
var a = ds.JobDuties.Find(item);
o.JobDuties.Add(a);
}
// Save changes
ds.SaveChanges();
return Mapper.Map<EmployeeWithJobDuties>(o);
}
}