mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-04-05 21:01:35 +08:00
#19615 : Adding new Convention in and also upgrading NHibernate to 3.3.3GA
Work Item: 19615 --HG-- branch : 1.x extra : rebase_source : c1a937d32c1980711e59a4b2a0374f5a449072de
This commit is contained in:
parent
1baae1b43c
commit
49b32de9b0
Binary file not shown.
@ -22,4 +22,29 @@ namespace Orchard.Data.Conventions {
|
||||
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();
|
||||
}
|
||||
|
||||
public void Accept(IAcceptanceCriteria<IOneToManyCollectionInspector> criteria) {
|
||||
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
|
||||
}
|
||||
|
||||
|
||||
public void Apply(IManyToManyCollectionInstance instance) {
|
||||
instance.Cache.ReadWrite();
|
||||
}
|
||||
|
||||
public void Accept(IAcceptanceCriteria<IManyToManyCollectionInspector> 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))
|
||||
.Conventions.Add(new CacheConvention(recordDescriptors), new CacheableCollectionConvention(recordDescriptors))
|
||||
.Alterations(alt => {
|
||||
foreach (var recordAssembly in recordDescriptors.Select(x => x.Type.Assembly).Distinct()) {
|
||||
alt.Add(new AutoMappingOverrideAlteration(recordAssembly));
|
||||
|
Loading…
Reference in New Issue
Block a user