Fluent NHibernate and Mysql,SQLite
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Fluent NHibernate and Mysql,SQLite,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4489字,纯文字阅读大概需要7分钟。
内容图文
![Fluent NHibernate and Mysql,SQLite](/upload/InfoBanner/zyjiaocheng/461/ed90f2f0069943208686088980691adc.jpg)
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
内容总结
以上是互联网集市为您收集整理的Fluent NHibernate and Mysql,SQLite全部内容,希望文章能够帮你解决Fluent NHibernate and Mysql,SQLite所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。