I have a set of Fluent NHibernate conventions most of which are database independent. However, there are a couple which are DBMS dependent such one for string properties:
Public Sub Apply(ByVal instance As IPropertyInstance) Implements IConvention(Of IPropertyInspector, IPropertyInstance).Apply
instance.CustomSqlType("VARCHAR2(50 BYTE)")
End Sub
Really I just use a convention like this one for DB generation (i.e. objects first development). This works all well and good for Oracle, but I then want do unit testing using an in-memory SQLite DB and obviously this convention wont work, as SQLite has no VARCHAR2 type.
Does anyone have any good advice or references on how they configure Fluent NHibernate in such circumstances.
At the moment I'm thinking along the lines of having a generic set of conventions that are database independent and then having the dependent ones in a sub directory/namespace. I would then have some kind of configuration that allows me to specify a custom ITypeSource component which would pick up all the generic conventions as well as the ones associated to the specific DBMS e.g. SqlConventionTypeSource, OracleConventionTypeSource...
Kind regards, Ryan.