public void Given_SurrogateKeys_When_DetailAddedToMaster_Then_DetailIsInObjectStateManager()
        {
            using (var ctx = new Model1Container())
            {
                //ctx.DeleteDatabase();
                ctx.ExecuteStoreCommand("DELETE FROM [EF4SurrogateDetail]");
                ctx.ExecuteStoreCommand("DELETE FROM [EFMasterSurrogate]");

                var master = new EFMasterSurrogate();
                master.MyProperty = "pepo";
                ctx.EFMasterSurrogate.AddObject(master);

                var detail = new EF4SurrogateDetail();
                master.EF4SurrogateDetail.Add(detail);
                Assert.IsTrue(ExistInObjectStateManager(ctx, detail));

                ctx.SaveChanges();
            }
        }
        private void FixupEFMasterSurrogate(EFMasterSurrogate previousValue)
        {
            if (previousValue != null && previousValue.EF4SurrogateDetail.Contains(this))
            {
                previousValue.EF4SurrogateDetail.Remove(this);
            }

            if (EFMasterSurrogate != null)
            {
                if (!EFMasterSurrogate.EF4SurrogateDetail.Contains(this))
                {
                    EFMasterSurrogate.EF4SurrogateDetail.Add(this);
                }
                if (Master_DbId != EFMasterSurrogate.DbId)
                {
                    Master_DbId = EFMasterSurrogate.DbId;
                }
            }
        }