public void ConcurrencyOnDelete()
        {
            ComputedTestCollection collection = new ComputedTestCollection();
            int testId = 0;

            switch (collection.es.Connection.ProviderSignature.DataProviderName)
            {
                case "EntitySpaces.SybaseSqlAnywhereProvider":
                    try
                    {
                        using (esTransactionScope scope = new esTransactionScope())
                        {
                            // Setup
                            ComputedTest entity = new ComputedTest();
                            entity.Save();
                            testId = entity.Id.Value;

                            // Test
                            entity = new ComputedTest();
                            entity.LoadByPrimaryKey(testId);
                            entity.str().SomeDate = "2007-01-01";

                            ComputedTest entity2 = new ComputedTest();
                            entity2.LoadByPrimaryKey(testId);
                            entity2.MarkAsDeleted();

                            entity.Save();
                            entity2.Save();
                            Assert.Fail("Concurrency Exception not thrown.");
                        }
                    }
                    catch (EntitySpaces.Interfaces.esConcurrencyException cex)
                    {
                        string err = cex.InnerException.Message.Substring(0, 11);
                        Assert.AreEqual("Error", cex.Message.Substring(0, 5));
                        Assert.AreEqual("Concurrency", err);
                    }
                    finally
                    {
                        // Cleanup
                        ComputedTest entity = new ComputedTest();
                        if (entity.LoadByPrimaryKey(testId))
                        {
                            entity.MarkAsDeleted();
                            entity.Save();
                        }
                    }
                    break;

                default:
                    Assert.Ignore("Sybase only.");
                    break;
            }
        }
        public void ConcurrencyOnUpdate()
        {
            ComputedTestCollection collection = new ComputedTestCollection();
            int testId = 0;

            switch (collection.es.Connection.ProviderSignature.DataProviderName)
            {
                case "EntitySpaces.SqlClientProvider":
                    try
                    {
                        using (esTransactionScope scope = new esTransactionScope())
                        {
                            // Setup
                            ComputedTest entity = new ComputedTest();
                            entity.Save();
                            testId = entity.Id.Value;

                            // Test
                            entity = new ComputedTest();
                            entity.LoadByPrimaryKey(testId);
                            entity.str().SomeDate = "2007-01-01";

                            ComputedTest entity2 = new ComputedTest();
                            entity2.LoadByPrimaryKey(testId);
                            entity2.str().SomeDate = "1999-12-31";

                            entity.Save();
                            entity2.Save();
                            Assert.Fail("Concurrency Exception not thrown.");
                        }
                    }
                    catch (EntitySpaces.Interfaces.esConcurrencyException cex)
                    {
                        Assert.AreEqual("Update failed", cex.Message.Substring(0, 13));
                    }
                    finally
                    {
                        ComputedTest entity = new ComputedTest();
                        if (entity.LoadByPrimaryKey(testId))
                        {
                            entity.MarkAsDeleted();
                            entity.Save();
                        }
                    }
                    break;

                default:
                    Assert.Ignore("SQL Server only.");
                    break;
            }
        }