本文整理汇总了C#中NHibernate.Cfg.Configuration.AddXml方法的典型用法代码示例。如果您正苦于以下问题:C# NHibernate.Cfg.Configuration.AddXml方法的具体用法?C# NHibernate.Cfg.Configuration.AddXml怎么用?C# NHibernate.Cfg.Configuration.AddXml使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NHibernate.Cfg.Configuration
的用法示例。
在下文中一共展示了NHibernate.Cfg.Configuration.AddXml方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConfigurationBuilder
public ConfigurationBuilder(IContentTypeManager definitions, DatabaseSection databaseSectionConfig)
{
_definitions = definitions;
if (databaseSectionConfig == null)
databaseSectionConfig = new DatabaseSection();
var configuration = MsSqlConfiguration.MsSql2008
//.ConnectionString(c => c.FromConnectionStringWithKey(databaseSectionConfig.ConnectionStringName))
.Cache(c => c.ProviderClass(databaseSectionConfig.CacheProviderClass));
if (databaseSectionConfig.CacheEnabled)
configuration = configuration.Cache(c => c.UseQueryCache());
IDictionary<string, string> properties = configuration.ToProperties();
properties["cache.use_second_level_cache"] = databaseSectionConfig.CacheEnabled.ToString();
properties["connection.connection_string_name"] = databaseSectionConfig.ConnectionStringName;
//ZeusPersistenceModel persistenceModel = new ZeusPersistenceModel();
//persistenceModel.Mappings.(DefaultLazy.AlwaysTrue());
_configuration = new NHibernate.Cfg.Configuration().AddProperties(properties);
AddMapping(_configuration, "Zeus.Persistence.NH.Mappings.Default.hbm.xml");
//_configuration.AddAssembly(Assembly.GetExecutingAssembly());
//persistenceModel.Configure(_configuration);
//persistenceModel.WriteMappingsTo(@"C:\mappings");
// For each definition, add a <subclass> element to mapping file.
StringBuilder mappings = new StringBuilder();
foreach (Type type in EnumerateDefinedTypes())
{
string format = (typeof(WidgetContentItem) == type) ? _widgetClassFormat : _classFormat;
mappings.AppendFormat(format, GetName(type), GetName(type.BaseType), GetDiscriminator(type));
}
string configurationXml = string.Format(_mappingFormat, mappings);
_configuration.AddXml(configurationXml);
}
示例2: CreateStatelessDbSession
/// <summary>
/// 创建StatelessDbSession对象
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="dbDialectProvider">数据库特性对象提供程序</param>
/// <param name="mappingXml">实体关系映射配置Xml文本</param>
/// <returns>返回StatelessDbSession对象</returns>
public virtual StatelessDbSession CreateStatelessDbSession(string connectionString, IDbDialectProvider dbDialectProvider, string mappingXml)
{
ISessionFactory sf = null;
while (!sessionFactories.TryGetValue(connectionString, out sf))
{
IDictionary<string, string> dbSetting = new Dictionary<string, string>
{
["dialect"] = dbDialectProvider.DialectName,
["connection.connection_string"] = connectionString,
};
CustomizeNHSessionFactory(dbSetting);
var x = new NHibernate.Cfg.Configuration();
x = x.AddProperties(dbSetting);
//允许采用配置文件修改NHibernate配置
var hc = ConfigurationManager.GetSection(CfgXmlHelper.CfgSectionName) as NHibernate.Cfg.IHibernateConfiguration;
if ((hc != null && hc.SessionFactory != null) || File.Exists(GetDefaultConfigurationFilePath()))
{
x = x.Configure();
}
if (System.Transactions.Transaction.Current != null)
{
//如果在分布式事务范围内,就将连接释放模式更改为on_close模式,防止auto模式下,重新获取连接,导致分布式事务升级
x.AddProperties(new Dictionary<string, string> {["connection.release_mode"] = "on_close" });
}
//添加实体关系映射
if (!string.IsNullOrWhiteSpace(mappingXml))
{
x.AddXml(mappingXml);
}
sf = x.BuildSessionFactory();
sessionFactories.TryAdd(connectionString, sf);
}
return new StatelessDbSession(sf, connectionString);
}