public void Delete(Dinner dinner)
{
List<RSVP> rsvps = dinner.RSVPs.ToList();// This clone looks inefficient.
foreach (RSVP rsvp in rsvps)
entities.RSVPs.DeleteObject(rsvp);
entities.Dinners.DeleteObject(dinner);
}
ВОПРОС:
Удаление родительской строки путем удаления дочерних строк, ссылающихся на нее сначала через клоны дочерних строк, выглядит неэффективно.
Дублирование дочерних строк потребует огромных ресурсов, я думаю.
Если так, то какой путь лучше?
РЕДАКТИРОВАТЬ 1:
namespace NerdDinner.Models
{
public class DinnerRepository
{
private NerdDinnerEntities entities = new NerdDinnerEntities();
public IQueryable<Dinner> FindAllDinners()
{
return entities.Dinners;
}
public IQueryable<Dinner> FindUpcomingDinners()
{
return from dinner in entities.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}
public Dinner GetDinnerByID(int DinnerID)
{
return entities.Dinners.FirstOrDefault(d => d.DinnerID == DinnerID);
}
public void Add(Dinner dinner)
{
entities.Dinners.AddObject(dinner);
}
public void Delete(Dinner dinner)
{
//List<RSVP> rsvps = dinner.RSVPs.ToList();
//foreach (RSVP rsvp in dinner.RSVPs)
// entities.RSVPs.DeleteObject(rsvp);
entities.Dinners.DeleteObject(dinner);
}
public void Save()
{
entities.SaveChanges();
}
}
}