Fluent NHibernate and Mysql,SQLite

來源:互聯網
上載者:User

標籤:

http://codeofrob.com/entries/sqlite-csharp-and-nhibernate.html

https://code.google.com/archive/p/csharp-sqlite/downloads

https://github.com/davybrion/NHibernateWorkshop

MySQL

  /// <summary>         ///MySQL 建立ISessionFactory         /// </summary>         /// <returns></returns>         public static ISessionFactory GetSessionFactory()         {             if (_sessionFactory == null)             {                 lock (_objLock)                 {                     if (_sessionFactory == null)                     {                         //配置ISessionFactory                         _sessionFactory = FluentNHibernate.Cfg.Fluently.Configure()                             //資料庫配置                        .Database(FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard                            .ConnectionString(c=>c.Server("")                            .Database("geovindu")                            .Password("520")                            .Username("root"))                            )                                                    .Mappings(m => m                         //.FluentMappings.PersistenceModel                         //.FluentMappings.AddFromAssembly();                                                .FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())) //用法注意                                 .BuildSessionFactory();                                            //    Fluently.Configure().Database(                    //    MySqlConfiguration.Standard.ConnectionString(                    //        c => c.FromConnectionStringWithKey("ConnectionString")                    //    )                    //)                    //.Mappings(m => m.FluentMappings.AddFromAssemblyOf<MyAutofacModule>())                    //.BuildSessionFactory())                     }                 }             }             return _sessionFactory;          }         /// <summary>         /// 重設Session         /// </summary>         /// <returns></returns>         public static ISession ResetSession()         {             if (_session.IsOpen)                 _session.Close();             _session = _sessionFactory.OpenSession();             return _session;         }         /// <summary>         /// 開啟ISession         /// </summary>         /// <returns></returns>         public static ISession GetSession()         {              GetSessionFactory();             if (_session == null)             {                 lock (_objLock)                 {                     if (_session == null)                     {                         _session = _sessionFactory.OpenSession();                     }                 }             }             return _session;         }

  SQLite (測試ISessionFactory還存在問題)

 /// <summary>    /// http://frankdecaire.blogspot.com/2014/04/fluent-nhibernate-unit-testing-using.html    /// </summary>    public static class SQLLiteSessionFactory    {        private static ISessionFactory _sessionFactory;        private static ISessionFactory SessionFactory        {            get            {                if (_sessionFactory == null)                {                    _sessionFactory = Fluently.Configure()                    .Database(SQLiteConfiguration                            .Standard                            .InMemory()                            .UsingFile("sibodu.db")                    )                    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<NHibernateTestProject.Entites.Department>())                    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<NHibernateTestProject.Entites.Employee>())                    .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))                    .BuildSessionFactory();                }                return _sessionFactory;            }        }        public static ISession OpenSession()        {            return SessionFactory.OpenSession();        }    }

  

/// http://www.cnblogs.com/vingi/articles/4302497.html
/// http://codeofrob.com/entries/sqlite-csharp-and-nhibernate.html
/// http://frankdecaire.blogspot.com/2014/04/fluent-nhibernate-unit-testing-using.html

 /// <summary>    /// Nhibernate    /// </summary>    public class MonoSQLiteDriver : NHibernate.Driver.ReflectionBasedDriver    {        public MonoSQLiteDriver()            : base(            "Mono.Data.Sqlite",            "Mono.Data.Sqlite",            "Mono.Data.Sqlite.SqliteConnection",            "Mono.Data.Sqlite.SqliteCommand")        {        }        public override bool UseNamedPrefixInParameter        {            get            {                return true;            }        }        public override bool UseNamedPrefixInSql        {            get            {                return true;            }        }        public override string NamedPrefix        {            get            {                return "@";            }        }        public override bool SupportsMultipleOpenReaders        {            get            {                return false;            }        }    } /// <summary>    /// Fluent NHibernate    ///    /// </summary>    public class MonoSQLiteConfiguration : PersistenceConfiguration<MonoSQLiteConfiguration>    {        public static MonoSQLiteConfiguration Standard        {            get { return new MonoSQLiteConfiguration(); }        }        /// <summary>        ///         /// </summary>        public MonoSQLiteConfiguration()        {            Driver<MonoSQLiteDriver>();            Dialect<SQLiteDialect>();            Raw("query.substitutions", "true=1;false=0");        }        /// <summary>        ///         /// </summary>        /// <returns></returns>        public MonoSQLiteConfiguration InMemory()        {            Raw("connection.release_mode", "on_close");            return ConnectionString(c => c                .Is("Data Source=:memory:;Version=3;"));//New=True;        }        /// <summary>        ///         /// </summary>        /// <param name="fileName"></param>        /// <returns></returns>        public MonoSQLiteConfiguration UsingFile(string fileName)        {            return ConnectionString(c => c                .Is(string.Format("Data Source={0};Version=3;Pooling=true;FailIfMissing=false;UTF8Encoding=True;", fileName)));//New=True;        }        /// <summary>        ///         /// </summary>        /// <param name="fileName"></param>        /// <param name="password"></param>        /// <returns></returns>        public MonoSQLiteConfiguration UsingFileWithPassword(string fileName, string password)        {            return ConnectionString(c => c                .Is(string.Format("Data Source={0};Version=3;New=True;Password={1};", fileName, password)));        }    }

  

Fluent NHibernate and Mysql,SQLite

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.