I am trying to understand why DbContext doesn't detect changesin many-to-many relationship. This is what I have set in model configuration:
this.Configuration.ValidateOnSaveEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
This is the test code:
var book = Context.Set<Book>().Where(b => b.Id == 1).Single();
var author = Context.Set<Author>().Where(a => a.Id == 2).Single();
book.Authors.Add(author);
if I check for changes, it doesn't report any:
// returns false
_context.ChangeTracker.Entries().Any(e => e.State == EntityState.Added || e.State == EntityState.Modified || e.State == EntityState.Deleted);
If I save changes, changes are updated to database correctly.
// 1 record added to BookAuthors table
_context.SaveChanges();
Why is DbContext not tracking changes for many-to-many? WCF is not involved, this is a direct connection to Sql server.