public void InsertCompany() { var operation = new DbCommandOperation <InsertCompanyByProcedure>("Local"); InsertCompanyByProcedure parameters = new InsertCompanyByProcedure() { Adress = "", Country = "NLD", HouseNumber = "181", Name = "A Company Name", ZipCode = "4624JC", CompanyType = CompanyType.NV, Text = "My Name 2" }; operation.ExecuteNonQuery(parameters); int newId = parameters.Id; }
public void InsertCompanyTransactional() { // Delete all companies outside Transaction. var deleteoperation = new DbCommandOperation <DeleteAllCompanies>("Local"); deleteoperation.ExecuteNonQuery(); var operation1 = new DbCommandOperation <InsertCompanyByProcedure>("Local"); var operation2 = new DbCommandOperation <InsertCompanyBySqlStatement>("Local"); using (DbConnection connection = operation1.CreateConnection()) { // operation1.CreateConnection() : operation1 determines the connection to use. // the result is the same as operation2.CreateConnection(), they both create a ConnectionObject from Config "Local" connection.Open(); using (DbTransaction transaction = connection.BeginTransaction()) { try { InsertCompanyByProcedure insert1 = new InsertCompanyByProcedure() { Adress = "", Country = "NLD", HouseNumber = "", Name = "A Company Name", ZipCode = "4624JC", CompanyType = CompanyType.NV, Text = "Guido Kleijer2" }; operation1.ExecuteNonQuery(connection, transaction, insert1); int newId = insert1.Id; // Too large ZipCode InsertCompanyBySqlStatement insert2 = new InsertCompanyBySqlStatement() { Adress = "", Country = "NLD", HouseNumber = "", Name = "A Company Name ", ZipCode = "4624JC TO LONG AAAAAAAAAAAbbbbbbbbbbbAAAAAAAAA TO LONG", CompanyType = CompanyType.NV, Text = "Guido Kleijer" }; operation2.ExecuteNonQuery(connection, transaction, insert2); int newId2 = insert2.Id; transaction.Commit(); } catch (Exception exception) { transaction.Rollback(); } } connection.Close(); } }