code_junkie

What's the best way to save a one-to-many relationship in Linq2Sql?

Nov 13th, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. class Person
  2. {
  3. IList<Vehicle> Vehicle;
  4. }
  5.  
  6. class Vehicle
  7. {
  8. string Name;
  9. string Colour;
  10. }
  11.  
  12. using (Db db = new Db())
  13. {
  14. var newPerson = db.People.SingleOrDefault(p => p.Id == person.Id) ?? new SqlContext.Person();
  15. // Left to right stuff.
  16. newPerson.Name = person.Name;
  17. newPerson.Age = person.Age;
  18.  
  19. if (newPerson.Id <= 0)
  20. db.People.InsertOnSubmit(newPerson);
  21. db.SubmitChanges();
  22. }
  23.  
  24. using (Db db = new Db())
  25. {
  26. var newPerson = db.People.SingleOrDefault(p => p.Id == person.Id) ?? new SqlContext.Person();
  27. // Left to right stuff.
  28. newPerson.Name = person.Name;
  29. newPerson.Age = person.Age;
  30.  
  31. // add vehicles.
  32. Vehicle firstV = new Vehicle();
  33. firstV.Name = "some name";
  34. firstV.Person = newPerson; // need to do this to set the person Id on the vehicle.
  35. newPerson.Vehicle.Add(firstV);
  36. // now when you save the Person it should save the Vehicle list
  37. // if you set Cascade save update on the list. (not sure how to do that in L2S
  38.  
  39. if (newPerson.Id <= 0)
  40. db.People.InsertOnSubmit(newPerson);
  41. db.SubmitChanges();
  42. }
Add Comment
Please, Sign In to add comment