#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:
Nicholas Mayne 2013-07-10 22:06:19 +01:00
parent 1baae1b43c
commit 49b32de9b0
3 changed files with 26 additions and 1 deletions

Binary file not shown.

View File

@ -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));
}
}
}

View File

@ -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));