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));
                    }
                }
            }
        }
    }
  • 相关阅读:
    dede模板留言提交错误时返回空白页处理方法
    Dedecms列表页通过函数调用当前文档tag的方法
    织梦dedecms如何让内容页显示不同的内容,但是每次更新都不变
    织梦DedeCMS网站服务器搬家详细教程
    让DEDECMS文章内容中链接新窗口打开的方法
    织梦dedecms中英文模版当前位置的修改方法
    织梦dedecms设置不同的搜索页模板教程
    简易版php文件上传_超详细详解
    nodejs 使用mongoose 操作mongodb
    记一个正则
  • 原文地址:https://www.cnblogs.com/shiningrise/p/2946722.html
Copyright © 2011-2022 走看看