bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Nhibernate3.0cookbook學習筆記配置與架構-創新互聯

NHibernate項目中都有App.config,主要是用來配置項目中的日志與數據庫等。

創新互聯專注于企業成都全網營銷、網站重做改版、單縣網站定制設計、自適應品牌網站建設、HTML5、商城網站定制開發、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為單縣等各大城市提供網站開發制作服務。

典型的App.config配置文件(這里包括log4net):

View Code
<?xml version="1.0" encoding="utf-8"?><configuration>  <configSections> <!--定義配置節點-->   <sectionname="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>   <sectionname="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>  </configSections>  <connectionStrings> <!--配置數據庫-->   <addname="db" connectionString="Data Source=.;Initial Catalog=NHCookbook;Integrated Security=True"/>  </connectionStrings>  <log4net>   <appendername="trace"
        type="log4net.Appender.TraceAppender, log4net"> <layouttype="log4net.Layout.PatternLayout, log4net">  <paramname="ConversionPattern"
                value=" %date %level %message%newline" /> </layout>   </appender>   <root> <levelvalue="ALL" /> <appender-refref="trace" />   </root>   <loggername="NHibernate"> <levelvalue="INFO" />   </logger>   <!--<logger name="MyApp.Project.SomeNamespace.Foo">
      <level value="WARN" />
    </logger>-->   <loggername="NHibernate.SQL"> <levelvalue="DEBUG" />   </logger>  </log4net>  
  <hibernate-configuration
xmlns="urn:nhibernate-configuration-2.2">   <session-factory>  <!--指定代理工廠類--> <propertyname="proxyfactory.factory_class">
                NHibernate.ByteCode.Castle.ProxyFactoryFactory,
                NHibernate.ByteCode.Castle
</property>  <!--數據庫類型--> <propertyname="dialect">
                NHibernate.Dialect.MsSql2008Dialect,
                NHibernate
</property>  <!--數據庫名--> <propertyname="connection.connection_string_name">
                db
</property>  <!--數據庫并發數--> <propertyname="adonet.batch_size">
                100
</property>  <!--映射的類名--> <mappingassembly="Eg.Core"/>   </session-factory>  </hibernate-configuration></configuration>

一些配置節點說明(水平有限就不翻譯了,直接貼書上的表格):

Property nameDescription
connection.providerProvider class to open and close database
connections.
connection.driver_classThis is specific to the RDBMS used, and is typically set
by the dialect.
connection.connection_stringDatabase connection string.
connection.connection_string_
name
Name of connection string in
<connectionStrings> element.
connection.isolationTransaction isolation level.
dialectRequired. A class to build RDBMS-specific SQL strings.
Typically, this is one of the many dialects from the
NHibernate.Dialect namespace
show_sqlBoolean value. Set to true to log all SQL statements to
Console.Out. Alternatively, log4net may be used to
log to other locations
current_session_context_classClass to manage contextual sessions
query.substitutionsComma-separated list of translations to perform on
query strings. For example, True=1, Yes=1, False=0,
No=0.
sql_exception_converterClass to convert RDBMS-specific ADO.NET Exceptions
to custom exceptions
prepare_sqlBoolean value. Prepares SQL statements and caches
the execution plan for the duration of the database
connection.
command_timeoutNumber of seconds to wait for a SQL command to
complete before timing out.
adonet.batch_sizeNumber of SQL commands to send at once before
waiting for a response from the database
generate_statisticsEnables tracking of some statistical information,
such as the number of queries executed and entities
loaded
proxyfactory.factory_classRequired. Specifies a factory class for our chosen
proxy framework, in this case Castle DynamicProxy2
format_sqlAdds line endings for easier-to-read SQL statements

順便貼一下Nhibernate的數據訪問架構:

將hibernate-configuration配置在單獨的文件中

我們也可以將App.config中的hibernate-configuration節點抽取出來,單獨配置在另一個XML文件中,并將該XML文件的屬性,復制到輸出目錄設置為:如果較新復制。

利用代碼配置hibernate-configuration

我們也可以通過代碼來配置hibernate-configuration節點中的內容.

App.config文件還是要的:

<?xml version="1.0" encoding="utf-8"?><configuration><connectionStrings><addname="db" connectionString="Server=.SQLExpress;
Database=NHCookbook; Trusted_Connection=SSPI"/></connectionStrings></configuration>

然后在Program.cs代碼中先引用命名空間:

using NHibernate.ByteCode.Castle;
using NHibernate.Cfg;
using NHibernate.Cfg.Loquacious;
using NHibernate.Dialect;

在Main方法中增加如下代碼:

var nhConfig = new Configuration()
.Proxy(proxy=>
proxy.ProxyFactoryFactory<ProxyFactoryFactory>())
.DataBaseIntegration(db=>
{
db.Dialect<MsSql2008Dialect>();
db.ConnectionStringName= "db";
db.BatchSize= 100;
})
.AddAssembly("Eg.Core");
var sessionFactory = nhConfig.BuildSessionFactory();
Console.WriteLine("NHibernate Configured!");
Console.ReadKey();

注意:DataBaseIntegration是一個擴展方法,要引用NHibernate.Cfg.Loquacious命名空間。

利用Fluent NHibernate

App.config:

<?xml version="1.0" encoding="utf-8"?><configuration><connectionStrings>  <addname="db" connectionString="Server=.SQLExpress;
Database=NHCookbook; Trusted_Connection=SSPI"/></connectionStrings></configuration>

增加代碼:

using Eg.FluentMappings.Mappings;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate.ByteCode.Castle;
var nhConfig = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(connstr=>
connstr.FromConnectionStringWithKey("db")
)
.ProxyFactoryFactory<ProxyFactoryFactory>()
.AdoNetBatchSize(100)
)
.Mappings(mappings=> mappings.FluentMappings
.AddFromAssemblyOf<ProductMapping>()
)
.BuildConfiguration();
var sessionFactory = nhConfig.BuildSessionFactory();
Console.WriteLine("NHibernate configured fluently!");
Console.ReadKey();

利用ConfORM Mappings

App.config:

View Code
<?xml version="1.0" encoding="utf-8"?><configuration><configSections>  <sectionname="hibernate-configuration"
    type="NHibernate.Cfg.ConfigurationSectionHandler,
NHibernate"/></configSections><connectionStrings>  <addname="db" connectionString="Server=.SQLExpress;
Database=NHCookbook; Trusted_Connection=SSPI"/></connectionStrings><hibernate-configuration
xmlns="urn:nhibernate-configuration-2.2">  <session-factory> <propertyname="proxyfactory.factory_class">
        NHibernate.ByteCode.Castle.ProxyFactoryFactory,
        NHibernate.ByteCode.Castle
</property> <propertyname="dialect">
        NHibernate.Dialect.MsSql2008Dialect,
        NHibernate
</property> <propertyname="connection.connection_string_name">
        db
</property> <propertyname="adonet.batch_size">
        100
</property>  </session-factory></hibernate-configuration></configuration>

增加代碼:

using Eg.ConfORMMapping.Mappings;
using NHibernate.Cfg;
var mappingFactory = new MappingFactory();
var mapping = mappingFactory.CreateMapping();
var nhConfig = new Configuration().Configure();
nhConfig.AddDeserializedMapping(mapping,null);
var sessionFactory = nhConfig.BuildSessionFactory();
Console.WriteLine("NHibernate configured!");
Console.ReadKey();

本文標題:Nhibernate3.0cookbook學習筆記配置與架構-創新互聯
當前鏈接:http://vcdvsql.cn/article42/ccchec.html

成都網站建設公司_創新互聯,為您提供品牌網站建設云服務器、品牌網站設計、軟件開發標簽優化網站內鏈

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計