Another question:If the data model needs to be refactored,is nhibernate a good ORM choice?

If you change the data model then any ORM you use will be affected. With Nhibernate you simply need to udpate your mapping file to reflect the changes in your data model. Other ORM's will need similar updates.