mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-07-31 19:06:34 +08:00
Clean up of conventions and adding CollectionConvention
--HG-- branch : 1.x rename : src/Orchard/Data/Conventions/CacheConvention.cs => src/Orchard/Data/Conventions/CacheConventions.cs
This commit is contained in:
parent
8162f99dbf
commit
10e6ed2c62
@ -7,13 +7,19 @@ using FluentNHibernate.Conventions.Instances;
|
||||
using Orchard.Environment.ShellBuilders.Models;
|
||||
|
||||
namespace Orchard.Data.Conventions {
|
||||
public class CacheConvention : IClassConvention, IConventionAcceptance<IClassInspector> {
|
||||
public class CacheConventions :
|
||||
IClassConvention, IClassConventionAcceptance,
|
||||
ICollectionConvention, ICollectionConventionAcceptance,
|
||||
IHasManyConvention, IHasManyConventionAcceptance,
|
||||
IHasManyToManyConvention, IHasManyToManyConventionAcceptance {
|
||||
|
||||
private readonly IEnumerable<RecordBlueprint> _descriptors;
|
||||
|
||||
public CacheConvention(IEnumerable<RecordBlueprint> descriptors) {
|
||||
public CacheConventions(IEnumerable<RecordBlueprint> descriptors) {
|
||||
_descriptors = descriptors;
|
||||
}
|
||||
|
||||
|
||||
public void Apply(IClassInstance instance) {
|
||||
instance.Cache.ReadWrite();
|
||||
}
|
||||
@ -21,14 +27,7 @@ namespace Orchard.Data.Conventions {
|
||||
public void Accept(IAcceptanceCriteria<IClassInspector> criteria) {
|
||||
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
|
||||
}
|
||||
}
|
||||
|
||||
public class CacheableCollectionConvention : IHasManyConvention, IHasManyConventionAcceptance, IHasManyToManyConvention {
|
||||
private readonly IEnumerable<RecordBlueprint> _descriptors;
|
||||
|
||||
public CacheableCollectionConvention(IEnumerable<RecordBlueprint> descriptors) {
|
||||
_descriptors = descriptors;
|
||||
}
|
||||
|
||||
public void Apply(IOneToManyCollectionInstance instance) {
|
||||
instance.Cache.ReadWrite();
|
||||
@ -46,5 +45,14 @@ namespace Orchard.Data.Conventions {
|
||||
public void Accept(IAcceptanceCriteria<IManyToManyCollectionInspector> criteria) {
|
||||
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
|
||||
}
|
||||
|
||||
|
||||
public void Apply(ICollectionInstance instance) {
|
||||
instance.Cache.ReadWrite();
|
||||
}
|
||||
|
||||
public void Accept(IAcceptanceCriteria<ICollectionInspector> criteria) {
|
||||
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
|
||||
}
|
||||
}
|
||||
}
|
@ -62,7 +62,7 @@ namespace Orchard.Data.Providers {
|
||||
// identical type names from different namespaces can be mapped without ambiguity
|
||||
.Conventions.Setup(x => x.Add(AutoImport.Never()))
|
||||
.Conventions.Add(new RecordTableNameConvention(recordDescriptors))
|
||||
.Conventions.Add(new CacheConvention(recordDescriptors), new CacheableCollectionConvention(recordDescriptors))
|
||||
.Conventions.Add(new CacheConventions(recordDescriptors))
|
||||
.Alterations(alt => {
|
||||
foreach (var recordAssembly in recordDescriptors.Select(x => x.Type.Assembly).Distinct()) {
|
||||
alt.Add(new AutoMappingOverrideAlteration(recordAssembly));
|
||||
|
@ -191,7 +191,7 @@
|
||||
<Compile Include="Data\Bags\StateValueProvider.cs" />
|
||||
<Compile Include="Data\Bags\SValue.cs" />
|
||||
<Compile Include="Data\Conventions\AggregateAttribute.cs" />
|
||||
<Compile Include="Data\Conventions\CacheConvention.cs" />
|
||||
<Compile Include="Data\Conventions\CacheConventions.cs" />
|
||||
<Compile Include="Data\DefaultDatabaseCacheConfiguration.cs" />
|
||||
<Compile Include="Data\IDatabaseCacheConfiguration.cs" />
|
||||
<Compile Include="Data\Migration\AutomaticDataMigrations.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user