I have the following C# Entity Framework code first entities defined:
class Program
{
static void Main(string[] args)
{
var context = new MyContext();
var person = new Person
{
FirstName = "Nadege",
LastName = "Deroussen",
BirthDate = DateTime.Now,
AccessCode = new AccessCode { Code = "ABC" }
};
context.Persons.Add(person);
var accessCode = new AccessCode { Code = "MGH" };
context.AccessCodes.Add(accessCode);
context.SaveChanges();
var person = context.Persons.Where(e => e.Id == 1).Single();
person.AccessCodeId = 2;
context.SaveChanges();
Console.Write("Person saved !");
Console.ReadLine();
}
}
public class Person
{
public int Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public DateTime BirthDate { get; set; }
public int AccessCodeId { get; set; }
[ForeignKey("AccessCodeId")]
public virtual AccessCode AccessCode { get; set; }
}
public class AccessCode
{
public int Id { get; set; }
public string Code { get; set; }
}
public class MyContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<AccessCode> AccessCodes { get; set; }
}
In the Main method, after assigning AccessCodeId = 2, if I check the AccessCode reference in the person, it is still pointing to the AccessCode with Id == 1. How can I get this auto-updated?
I am learning EF, so please excuse me if this doesn't make sense.
