本文整理汇总了C#中NHibernate.Cache方法的典型用法代码示例。如果您正苦于以下问题:C# NHibernate.Cache方法的具体用法?C# NHibernate.Cache怎么用?C# NHibernate.Cache使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NHibernate
的用法示例。
在下文中一共展示了NHibernate.Cache方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AdjustConfiguration
protected override void AdjustConfiguration(NHibernate.Cfg.Configuration cfg)
{
//XmlConfigurator.Configure();
cfg.Cache(x =>
{
x.UseQueryCache = true;
x.Provider<HashtableCacheProvider>();
});
}
示例2: ApplyMapping
public void ApplyMapping(Attribute attribute, Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper mapper, MappingContext context)
{
var cacheAttr = (CacheAttribute)attribute;
mapper.Cache(m =>
{
m.Usage(GetNHibernateCacheUsage(cacheAttr));
m.Include(GetNHibernateCacheInclude(cacheAttr));
if (!String.IsNullOrEmpty(cacheAttr.Region))
{
m.Region(cacheAttr.Region);
}
});
}
示例3: mapper_BeforeMapClass
static void mapper_BeforeMapClass(NHibernate.Mapping.ByCode.IModelInspector modelInspector,
System.Type type,
NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer)
{
classCustomizer.Cache(cacheMapping => cacheMapping.Usage(NHibernate.Mapping.ByCode.CacheUsage.ReadWrite));
string fullName = type.FullName; // example: Domain.TheProduction+Product
string[] fullNameSplit = fullName.Split('+');
string className = fullNameSplit[1];
// Last() skips the other namespace(s)
string schemaDomainName = fullNameSplit[0].Split('.').Last();
string schemaName = schemaDomainName.Substring(0, schemaDomainName.Length - "Domain".Length);
string sqlServerFullName = schemaName + "." + className;
classCustomizer.Table(sqlServerFullName);
System.Reflection.MemberInfo mi = type.GetMember(className + "Id",
System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)[0];
classCustomizer.Id(mi,
idMapper =>
{
idMapper.Column(className + "Id");
idMapper.Generator(NHibernate.Mapping.ByCode.Generators.Identity);
});
}
示例4: mapper_BeforeMapBag
static void mapper_BeforeMapBag(
NHibernate.Mapping.ByCode.IModelInspector modelInspector,
NHibernate.Mapping.ByCode.PropertyPath member,
NHibernate.Mapping.ByCode.IBagPropertiesMapper propertyCustomizer)
{
/*
* class Person
* {
* IList<Hobby> Hobbies
* }
*
*
*/
string parentEntity = member.LocalMember.DeclaringType.Name; // this gets the Person
string foreignKey = parentEntity + "Id";
propertyCustomizer.Key(keyMapping => keyMapping.Column(foreignKey));
// http://www.ienablemuch.com/2014/10/inverse-cascade-variations-on-nhibernate.html
// best persistence approach: Inverse+CascadeAll
propertyCustomizer.Inverse(true);
propertyCustomizer.Cascade(NHibernate.Mapping.ByCode.Cascade.All);
propertyCustomizer.Cache(cacheMapping => cacheMapping.Usage(NHibernate.Mapping.ByCode.CacheUsage.ReadWrite));
}
示例5: RegisterProperties
protected virtual void RegisterProperties(NHibernate.Cfg.Configuration configuration)
{
configuration.Proxy(p => p.ProxyFactoryFactory<ComponentProxyFactoryFactory>());
configuration.DataBaseIntegration(db =>
{
db.Dialect<MsSql2005Dialect>();
db.Driver<SqlClientDriver>();
//db.ConnectionStringName = "ConnectionString";
db.ConnectionString = Common.Constants.AppConfig.ConnectionString;
db.BatchSize = 10;
});
configuration.CurrentSessionContext<ThreadLocalConversationalSessionContext>();
configuration.Cache(cp =>
{
cp.UseQueryCache = true;
cp.Provider<SysCacheProvider>();
});
}