Of course.. here it is:
var mapper = new ConventionModelMapper();
            Type baseEntityType = typeof (Entity);
            mapper.IsEntity((t, declared) =>
baseEntityType.IsAssignableFrom(t) && baseEntityType != t && !
t.IsInterface);
            mapper.IsRootEntity((t, declared) =>
baseEntityType.Equals(t.BaseType));
            mapper.BeforeMapManyToOne +=
MapperBeforeMapManyToOneForeignKey;
            mapper.BeforeMapBag += MapperBeforeMapBagForeignKey;
            mapper.BeforeMapProperty += MapperBeforeMapProperty;
            mapper.BeforeMapClass += MapperBeforeMapClass;

            mapper.Class<Entity>(map =>
                                     {
                                         map.Id(x => x.Id,
                                                m =>
                                                    {
 
m.Generator(Generators.Guid);
 
m.Column("ID");
                                                    });
                                         map.Version(x => x.Version,
                                                     m =>
                                                     {
 
m.Generated(VersionGeneration.Never);
 
m.Column("VERSION");
                                                     });
                                     });
private void MapperBeforeMapClass(IModelInspector modelInspector, Type
type, IClassAttributesMapper map)
{
        map.Table("[" +
type.Name.SplitCamelCaseAndUnderscore().ToUpper() + "]");
}
private void MapperBeforeMapProperty(IModelInspector modelInspector,
PropertyPath member, IPropertyMapper map)
{
        map.Column("[" +
member.ToColumnName().SplitCamelCaseAndUnderscore().ToUpper() +
"]");
}
private void MapperBeforeMapBagForeignKey(IModelInspector
modelinspector, PropertyPath member, IBagPropertiesMapper map)
        {
            map.Key( km =>
                km.Column("[" +
member.GetContainerEntity(modelinspector).Name.SplitCamelCaseAndUnderscore().ToUpper()
+ "_ID]"));
        }
private void MapperBeforeMapManyToOneForeignKey(IModelInspector
modelInspector, PropertyPath member, IManyToOneMapper map)
        {
            map.Column("[" +
member.LocalMember.Name.SplitCamelCaseAndUnderscore().ToUpper() +
"_ID]");
        }

where SplitCamelCaseAndUnderscore is an extension method on string:
public static string SplitCamelCaseAndUnderscore(this string str)
{
        return Regex.Replace(Regex.Replace(str, @"(\P{Ll})(\P{Ll}
\p{Ll})", "$1_$2"), @"(\p{Ll})(\P{Ll})", "$1_$2");
}

On May 29, 11:40 am, "c.sokun" <[email protected]> wrote:
> Could you share your configuration?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to