I have been working on providing a user-defined domain object to my C# ASP.NET NHibernate project. I have been undecided on which approach to take. One difficulty is that the mapping files I am using are embedded so they cannot be changed. After some research, I had been considering two options. Using a one-to-many look-up table which contained all the custom attributes or using a dynamic-component mapping.