标签:
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
标签:
原文地址:http://www.cnblogs.com/geovindu/p/5343381.html