zoukankan      html  css  js  c++  java
  • Using Fluent NHibernate in Spring.Net AutoMap自动Map

    Using Fluent NHibernate in Spring.Net

    http://blog.bennymichielsen.be/2009/01/04/using-fluent-nhibernate-in-spring-net/
    protected override void PostProcessConfiguration(Configuration config)
    {
    base.PostProcessConfiguration(config);

    Fluently.Configure(config)
    .Database(MySQLConfiguration.Standard.ConnectionString(
    c => c.FromConnectionStringWithKey(“connectionString”)))
    .Mappings( m => m.FluentMappings
    .AddFromAssemblyOf())
    .BuildSessionFactory();
    }
    protected override ISessionFactory NewSessionFactory(Configuration config)
    {
    config = Fluently.Configure(config)
    .Mappings(m => m.FluentMappings.AddFromAssemblyOf())
    .BuildConfiguration();
    return base.NewSessionFactory(config);
    }
    here is the implementation if you are using FluentNhibernate auto mapping :

    protected override void PostProcessConfiguration(Configuration config)
    {
    base.PostProcessConfiguration(config);

    var autoMappingCfg = new AutoMappingConfiguration();

    var autoMap = AutoMap.AssemblyOf(autoMappingCfg)
    .Conventions.Add(DefaultCascade.All(), DefaultLazy.Never())
    .Conventions.Add()
    .Override(map => { map.IgnoreProperty(i => i.Total); });

    Fluently.Configure(config)
    .Mappings(m => m.AutoMappings.Add(autoMap))
    .BuildConfiguration();
    }

    in outmapping you don’t need to inject FluentNhibernateMappingAssemblies. so configure Sping.Net accordingly
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Spring.Data.NHibernate;
    using FluentNHibernate;
    using System.Reflection;
    using NHibernate.Cfg;
     
    namespace SessionFactories
    {
        public class FluentNhibernateLocalSessionFactoryObject
        : LocalSessionFactoryObject
        {
            /// <summary>
            
    /// Sets the assemblies to load that contain fluent nhibernate mappings.
            
    /// </summary>
            
    /// <value>The mapping assemblies.</value>
            public string[] FluentNhibernateMappingAssemblies
            {
                get;
                set;
            }
     
            protected override void PostProcessConfiguration(Configuration config)
            {
                base.PostProcessConfiguration(config);
                if(FluentNhibernateMappingAssemblies != null)
                {
                    foreach(string assemblyName in FluentNhibernateMappingAssemblies)
                    {
                        config.AddMappingsFromAssembly(Assembly.Load(assemblyName));
                    }
                }
            }
        }
    }
  • 相关阅读:
    022、如何运行容器(2019-01-15 周二)
    ssh 跳板机部署
    021、镜像小结(2019-01-14 周一)
    020、搭建本地Registry(2019-01-11 周五)
    019、使用公共Registry (2019-01-10 周四)
    018、容器命名最佳实践 (2019-01-09 周三)
    017、RUN、CMD、ENTRYPOINT (2019-01-08 周二)
    016、Dockerfile 常用命令(2019-01-07 周一)
    015、调试Dockerfile(2019-01-04 周五)
    014、镜像的缓存特性(2019-01-03 周四)
  • 原文地址:https://www.cnblogs.com/shiningrise/p/2946722.html
Copyright © 2011-2022 走看看