Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Patient
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public string Email ( get; set; }
- public virtual Nutritionist Nutritionist { get; set; }
- }
- public class Nutritionist
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public virtual List<Patient> Patients { get; set; }
- }
- [TestMethod]
- public void Changing_Nutritionist_In_Disconnected_Context_Works()
- {
- Patient p;
- Nutritionist n;
- using (var c = new Context())
- {
- // Get a patient where I know p.Nutritionist.Id == 1 in database.
- p = c.Patients.Find(1);
- // Get some other nutritionist
- n = c.Nutritionists.Find(3);
- }
- using (var c = new Context())
- {
- //change patient's email and nutritionist
- p.Email = "patient@domain.com";
- p.Nutritionist = n;
- c.Patients.Attach(p);
- c.Entry(p).State = EntityState.Modified;
- c.SaveChanges();
- }
- using (var c = new Context())
- {
- Assert.AreEqual(3,c.Patients.Find(1).Nutritionist.Id);
- }
- }
- exec sp_executesql N'UPDATE [dbo].[Patients]
- SET [Name] = @0, [Email] = @1
- WHERE ([Id] = @2)
- ',N'@0 nvarchar(max) ,@1 nvarchar(max) ,@2 int',@0=N'some name',@1=N'patient@domain.com',@2=1
- go
- cn.Patients.Attach(p);
- cn.Nutritionists.Attach(n);
- cn.Entry(p).Reference(x => x.Nutritionist).Load();
- p.Nutritionist = n;
- cn.Entry(p).State = EntityState.Modified;
- cn.SaveChanges();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement