#18116, #18082: Fixing Version column mapping

Work Items: 18116, 18082

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-09-22 15:50:03 -07:00
parent 687cdff569
commit ca6b0bcd07
2 changed files with 23 additions and 3 deletions

View File

@@ -1,7 +1,23 @@
namespace Orchard.Data.Migration.Records {
using FluentNHibernate.Mapping;
namespace Orchard.Data.Migration.Records {
public class DataMigrationRecord {
public virtual int Id { get; set; }
public virtual string DataMigrationClass { get; set; }
public virtual int Version { get; set; }
}
/// <summary>
/// Since the "Version" colmuns is "AutoMapped" in FluentNHibernate, and the currently used version
/// doesn't understand IVersionConvention and IVersionConventionAcceptance, we need to provide a manual
/// mapping.
/// </summary>
public sealed class DataMigrationRecordMap : ClassMap<DataMigrationRecord> {
public DataMigrationRecordMap() {
Table("Orchard_Framework_DataMigrationRecord");
Id(x => x.Id);
Map(x => x.DataMigrationClass);
Map(x => x.Version);
}
}
}

View File

@@ -9,6 +9,7 @@ using FluentNHibernate.Conventions.Helpers;
using NHibernate.Cfg;
using Orchard.ContentManagement.Records;
using Orchard.Data.Conventions;
using Orchard.Data.Migration.Records;
using Orchard.Environment.ShellBuilders.Models;
namespace Orchard.Data.Providers {
@@ -22,12 +23,15 @@ namespace Orchard.Data.Providers {
return Fluently.Configure()
.Database(database)
.Mappings(m => m.AutoMappings.Add(persistenceModel))
.Mappings(m => {
m.AutoMappings.Add(persistenceModel);
m.FluentMappings.Add(typeof (DataMigrationRecordMap));
})
.BuildConfiguration();
}
public static AutoPersistenceModel CreatePersistenceModel(IEnumerable<RecordBlueprint> recordDescriptors) {
return AutoMap.Source(new TypeSource(recordDescriptors))
return AutoMap.Source(new TypeSource(recordDescriptors.Where(x => x.Type != typeof(DataMigrationRecord))))
// Ensure that namespaces of types are never auto-imported, so that
// identical type names from different namespaces can be mapped without ambiguity
.Conventions.Setup(x => x.Add(AutoImport.Never()))