Yes you should be able to use multiple insert statement using a single dbcommand
string insertCustomerSql = "INSERT INTO Customers (Name, EmailAddress) VALUES (@Name,@EmailAddress) SELECT @CustomerId = SCOPE_IDENTITY()";
string insertOrderSql = "INSERT INTO Orders (CustomerId, Number, OrderDate) VALUES (@CustomerId, @Number, @OrderDate)";
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
DbCommand insertCustomerCommand = database.GetSqlStringCommand(insertCustomerSql);
database.AddInParameter(insertCustomerCommand, "Name", DbType.String, "Bill Doe");
database.AddInParameter(insertCustomerCommand, "EmailAddress", DbType.String, "bill@doe.com");
database.AddOutParameter(insertCustomerCommand, "CustomerId", DbType.Int32, 4);
database.ExecuteNonQuery(insertCustomerCommand);
int customerId = (int)database.GetParameterValue (insertCustomerCommand, "CustomerId");
DbCommand insertOrderCommand = database.GetSqlStringCommand(insertOrderSql);
database.AddInParameter(insertOrderCommand, "CustomerId", DbType.Int32, customerId);
database.AddInParameter(insertOrderCommand, "Number", DbType.String, "12345");
database.AddInParameter(insertOrderCommand, "OrderDate", DbType.DateTime, System.DateTime.Now);
database.ExecuteNonQuery(insertOrderCommand);
DbCommand insertOrderCommandAgain = database.GetSqlStringCommand(insertOrderSql);
database.AddInParameter(insertOrderCommandAgain, "CustomerId", DbType.Int32, customerId);
database.AddInParameter(insertOrderCommandAgain, "Number", DbType.String, "23456");
database.AddInParameter(insertOrderCommandAgain, "OrderDate", DbType.DateTime, System.DateTime.Now);
database.ExecuteNonQuery(insertOrderCommandAgain);
scope.Complete();
}
for more
info