コード例 #1
0
        public static void SaveCheckChanges(TestProjectEFDbContext context)
        {
            var saved = false;

            while (!saved)
            {
                try
                {
                    context.SaveChanges();
                    saved = true;
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    foreach (var entry in ex.Entries)
                    {
                        if (entry.Entity is BaseUniversity)
                        {
                            var proposedValues = entry.CurrentValues;
                            var databaseValues = entry.GetDatabaseValues();

                            foreach (var property in proposedValues.Properties)
                            {
                                var proposedValue = proposedValues[property];
                                var databaseValue = databaseValues[property];
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            TestProjectEFDbContext testProjectEFDbContext = new TestProjectEFDbContext();


            var FirstUniversitiy = testProjectEFDbContext.Universities.First();

            testProjectEFDbContext.Database.ExecuteSqlCommand(" UPDATE " + " dbo.Universities SET Name = @p0" + " WHERE UniversityId = @p1", "UTM", 1);
            FirstUniversitiy.Name = "USM";

            try
            {
                testProjectEFDbContext.SaveChanges(); // exception
            }catch (DbUpdateConcurrencyException e)
            {
                SaveCheckChanges(testProjectEFDbContext);
            }


            Console.ReadLine();
        }