How do you map an enum as an int value with fluent NHibernate?

The way to define this convention changed sometimes ago, it’s now : public class EnumConvention : IUserTypeConvention { public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria) { criteria.Expect(x => x.Property.PropertyType.IsEnum); } public void Apply(IPropertyInstance target) { target.CustomType(target.Property.PropertyType); } }

What’s the difference between session.Merge and session.SaveOrUpdate?

This is from section 10.7. Automatic state detection of the Hibernate Reference Documentation: saveOrUpdate() does the following: if the object is already persistent in this session, do nothing if another object associated with the session has the same identifier, throw an exception if the object has no identifier property, save() it if the object’s identifier … Read more

What is the difference between JoinQueryOver and JoinAlias?

Functionally they do the same thing, create a join to another entity. The only difference is what they return. JoinQueryOver returns a new QueryOver with the current entity being the entity joined, while JoinAlias returns the original QueryOver that has the current entity as the original root entity. Whichever one you use is a matter … Read more

How does TransactionScope roll back transactions?

Essentially TransactionScope doesn’t track your Adapter’s, what it does is it tracks database connections. When you open a DB connection the connections will looks if there is an ambient transaction (Transaction Scope) and if so enlist with it. Caution if there are more the one connection to the same SQL server this will escalate to … Read more

Best way to convert IList or IEnumerable to Array

Which version of .NET are you using? If it’s .NET 3.5, I’d just call ToArray() and be done with it. If you only have a non-generic IEnumerable, do something like this: IEnumerable query = …; MyEntityType[] array = query.Cast<MyEntityType>().ToArray(); If you don’t know the type within that method but the method’s callers do know it, … Read more