public void Can_Create_Tables_With_Schema_in_SqlServer()
        {
            var dbFactory = OrmLiteTestBase.CreateSqlServerDbFactory();

            using (IDbConnection db = dbFactory.OpenDbConnection())
            {
                CreateSchemaIfNotExists(db);
                db.DropAndCreateTable <User>();

                var tables = db.Column <string>(@"SELECT '['+SCHEMA_NAME(schema_id)+'].['+name+']' AS SchemaTable FROM sys.tables");

                //sql server dialect should create the table in the schema
                Assert.That(tables.Contains("[Security].[Users]"));
            }
        }
Пример #2
0
        public void Can_Perform_CRUD_Operations_On_Table_With_Schema()
        {
            var dbFactory = OrmLiteTestBase.CreateSqlServerDbFactory();

            using (IDbConnection db = dbFactory.OpenDbConnection())
            {
                CreateSchemaIfNotExists(db);
                db.CreateTable <User>(true);

                db.Insert(new User {
                    Id = 1, Name = "A", CreatedDate = DateTime.Now
                });
                db.Insert(new User {
                    Id = 2, Name = "B", CreatedDate = DateTime.Now
                });

                var user = new User {
                    Id = 3, Name = "B", CreatedDate = DateTime.Now
                };
                user.Id = (int)db.Insert(user, selectIdentity: true);

                Assert.That(user.Id, Is.GreaterThan(0));

                var rowsB = db.SelectFmt <User>("Name = {0}", "B");
                Assert.That(rowsB, Has.Count.EqualTo(2));

                var rowIds = rowsB.ConvertAll(x => x.Id);
                Assert.That(rowIds, Is.EquivalentTo(new List <long> {
                    2, 3
                }));

                rowsB.ForEach(x => db.Delete(x));

                rowsB = db.SelectFmt <User>("Name = {0}", "B");
                Assert.That(rowsB, Has.Count.EqualTo(0));

                var rowsLeft = db.Select <User>();
                Assert.That(rowsLeft, Has.Count.EqualTo(1));

                Assert.That(rowsLeft[0].Name, Is.EqualTo("A"));
            }
        }
Пример #3
0
 public ReturnAttributeTests()
 {
     ConnectionString = OrmLiteTestBase.GetConnectionString();
     DialectProvider  = SqlServer2012Dialect.Provider;
 }
Пример #4
0
        public void Run()
        {
            //Setup SQL Server Connection Factory
            var dbFactory = OrmLiteTestBase.CreateSqlServerDbFactory();

            //var dbFactory = new OrmLiteConnectionFactory(
            //    @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\App_Data\Database1.mdf;Integrated Security=True;User Instance=True",
            //    SqlServerDialect.Provider);

            //Use in-memory Sqlite DB instead
            //var dbFactory = new OrmLiteConnectionFactory(
            //    ":memory:", false, SqliteDialect.Provider);

            //Non-intrusive: All extension methods hang off System.Data.* interfaces
            using (IDbConnection db = dbFactory.OpenDbConnection())
            {
                //Re-Create all table schemas:
                db.DropTable <OrderDetail>();
                db.DropTable <Order>();
                db.DropTable <Customer>();
                db.DropTable <Product>();
                db.DropTable <Employee>();

                db.CreateTable <Employee>();
                db.CreateTable <Product>();
                db.CreateTable <Customer>();
                db.CreateTable <Order>();
                db.CreateTable <OrderDetail>();

                db.Insert(new Employee {
                    Id = 1, Name = "Employee 1"
                });
                db.Insert(new Employee {
                    Id = 2, Name = "Employee 2"
                });
                var product1 = new Product {
                    Id = 1, Name = "Product 1", UnitPrice = 10
                };
                var product2 = new Product {
                    Id = 2, Name = "Product 2", UnitPrice = 20
                };
                db.Save(product1, product2);

                var customer = new Customer {
                    FirstName    = "Orm",
                    LastName     = "Lite",
                    Email        = "*****@*****.**",
                    PhoneNumbers =
                    {
                        { PhoneType.Home,   "555-1234"     },
                        { PhoneType.Work,   "1-800-1234"   },
                        { PhoneType.Mobile, "818-123-4567" },
                    },
                    Addresses =
                    {
                        { AddressType.Work, new Address {
                              Line1 = "1 Street", Country = "US", State = "NY", City = "New York", ZipCode = "10101"
                          } },
                    },
                    CreatedAt = DateTime.UtcNow,
                };
                db.Insert(customer);

                var customerId = db.GetLastInsertId();                        //Get Auto Inserted Id
                customer = db.QuerySingle <Customer>(new { customer.Email }); //Query
                Assert.That(customer.Id, Is.EqualTo(customerId));

                //Direct access to System.Data.Transactions:
                using (IDbTransaction trans = db.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    var order = new Order {
                        CustomerId      = customer.Id,
                        EmployeeId      = 1,
                        OrderDate       = DateTime.UtcNow,
                        Freight         = 10.50m,
                        ShippingAddress = new Address {
                            Line1 = "3 Street", Country = "US", State = "NY", City = "New York", ZipCode = "12121"
                        },
                    };
                    db.Save(order);                       //Inserts 1st time

                    order.Id = (int)db.GetLastInsertId(); //Get Auto Inserted Id

                    var orderDetails = new[] {
                        new OrderDetail {
                            OrderId   = order.Id,
                            ProductId = product1.Id,
                            Quantity  = 2,
                            UnitPrice = product1.UnitPrice,
                        },
                        new OrderDetail {
                            OrderId   = order.Id,
                            ProductId = product2.Id,
                            Quantity  = 2,
                            UnitPrice = product2.UnitPrice,
                            Discount  = .15m,
                        }
                    };

                    db.Insert(orderDetails);

                    order.Total = orderDetails.Sum(x => x.UnitPrice * x.Quantity * x.Discount) + order.Freight;

                    db.Save(order); //Updates 2nd Time

                    trans.Commit();
                }
            }
        }