Transactions with Oracle 11g question.

41 views
Skip to first unread message

Alexandro Velarde

unread,
Nov 11, 2011, 3:55:55 PM11/11/11
to Business Logic Toolkit for .NET
Hi Igor,

I like the framework. It was very easy to setup and make it work with
Oracle 11g Express Edition.

I've followed most of the examples and everything is working as
expected. However, Transactions don't seem to be working as described
in: http://bltoolkit.net/doc/DataAccess/Transaction.htm.

Please let me know if I'm missing something.

Thanks,
Alexandro

Igor Tkachev

unread,
Nov 11, 2011, 4:11:22 PM11/11/11
to Alexandro Velarde, Business Logic Toolkit for .NET
Hello, Alexandro.

What is wrong with the transactions?
Can you provide a test to reproduce the issue? We have issue tracking
on GitHub (https://github.com/igor-tkachev/bltoolkit/issues).

Also you can submit pull request (https://github.com/igor-tkachev/bltoolkit/pulls)

> Hi Igor,

> Thanks,
> Alexandro


--
Regards,
Igor

Alexandro Velarde

unread,
Nov 14, 2011, 2:31:07 PM11/14/11
to Business Logic Toolkit for .NET
Hi Igor,
Just to let you know that the Transaction is working fine.

I was only able to make it work by defining an output parameter in my
store procedure and adding the output parameter to my AddProduct
abstract method in my ProductAccessor class.

Thanks for your help.

Alexandro

[TestMethod]
public void
CanInsertAndUpdateProductWithStoreProcedureAccesorTest()
{
using(var dbManager = new
DbManager(OracleDbConnectionString))
{
var productAccessor =
DataAccessor.CreateInstance<ProductAccessor>(dbManager);

productAccessor.BeginTransaction();

int id;

productAccessor.AddProduct(out id, "new product 1",
"test product again", "", "", 1.25M, new MemoryStream(), "", "",
DateTime.Now);

Assert.IsTrue(id > 0);

productAccessor.UpdateProduct(id, "new product 1
updated", "test product again updated", "", "", 8.56M, new
MemoryStream(), "", "", DateTime.Now.AddDays(1));

var products = productAccessor.GetProducts();

var product = products.FirstOrDefault(p => p.Id ==
id);

Assert.AreEqual("new product 1 updated",
product.Name);

Assert.AreEqual("test product again updated",
product.Description);

productAccessor.RollbackTransaction();
Reply all
Reply to author
Forward
0 new messages