Ejemplo n.º 1
0
        public int GetOrAdd(string name)
        {
            Table_GetOrAdd entity   = null;
            int            entityId = -1;

            using (var dataContext = new TestCaseDataEntities())
            {
                using (var transaction = dataContext.Database.BeginTransaction())
                {
                    try
                    {
                        entity = dataContext.Table_GetOrAdd.FirstOrDefault(e => e.Name == name);
                        if (entity == null)
                        {
                            entity = new Table_GetOrAdd {
                                Name = name
                            };
                            dataContext.Table_GetOrAdd.Add(entity);

                            dataContext.SaveChanges();
                            transaction.Commit();
                        }

                        entityId = entity.Id;
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }

            return(entityId);
        }
Ejemplo n.º 2
0
        public void Test_GetOrAdd()
        {
            string         name   = "test";
            Table_GetOrAdd entity = null;

            using (var context = new TestCaseDataEntities())
            {
                entity = context.Table_GetOrAdd.FirstOrDefault(e => e.Name == name);
                if (entity != null)
                {
                    context.Table_GetOrAdd.Remove(entity);
                    context.SaveChanges();
                }
            }

            using (var context = new TestCaseDataEntities())
            {
                entity = context.Table_GetOrAdd.FirstOrDefault(e => e.Name == name);
                Assert.IsNull(entity);

                entity = new Table_GetOrAdd {
                    Name = name
                };
                context.Table_GetOrAdd.Add(entity);
                Assert.AreEqual(0, entity.Id);
                context.SaveChanges();
                Assert.AreNotEqual(0, entity.Id);
            }

            entity = null;
            using (var context = new TestCaseDataEntities())
            {
                entity = context.Table_GetOrAdd.FirstOrDefault(e => e.Name == name);
                Assert.IsNotNull(entity);
            }

            using (var context = new TestCaseDataEntities())
            {
                entity = context.Table_GetOrAdd.FirstOrDefault(e => e.Name == name);
                if (entity != null)
                {
                    context.Table_GetOrAdd.Remove(entity);
                    context.SaveChanges();
                }
            }

            int actual = _service.GetOrAdd(name);

            Assert.AreNotEqual(0, actual);
        }