transactions and delete using fluent nhibernate

Posted by Will I Am on Stack Overflow See other posts from Stack Overflow or by Will I Am
Published on 2010-05-19T23:16:20Z Indexed on 2010/05/19 23:20 UTC
Read the original article Hit count: 330

I am starting to play with (Fluent) nHibernate and I am wondering if someone can help with the following. I'm sure it's a total noob question.

I want to do:

   delete from TABX where name = 'abc'

where table TABX is defined as:

   ID int
   name varchar(32)
   ...

I build the code based on internet samples:

 using (ITransaction transaction = session.BeginTransaction())
                {
                    IQuery query = session.CreateQuery("FROM TABX WHERE name = :uid")
                        .SetString("uid", "abc");
                    session.Delete(query.List<Person>()[0]);
                    transaction.Commit();
                }

but alas, it's generating two queries (one select and one delete). I want to do this in a single statement, as in my original SQL. What is the correct way of doing this?

Also, I noticed that in most samples on the internet, people tend to always wrap all queries in transactions. Why is that? If I'm only running a single statement, that seems an overkill. Do people tend to just mindlessly cut and paste, or is there a reason beyond that? For example, in my query above, if I do manage it to get it from two queries down to one, i should be able to remove the begin/commit transaction, no?

if it matters, I'm using PostgreSQL for experimenting.

© Stack Overflow or respective owner

Related posts about fluent-nhibernate

Related posts about nhibernate