MappingPartComparer works fine, the problem is that the sorted
collection (ClassMapping.UnmigratedParts) does not include all mapping
parts of the class. I don't know how to attach the file to discussion,
so I will post here all the files from sample console application. I
am using revision 541 of the fluent-nhibernate.
App.config
<configuration>
<configSections>
<section name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
<connectionStrings>
<add name="Database"
connectionString="Server=localhost;Database=NHibernateTest;Integrated
Security=true"/>
</connectionStrings>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property
name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle</property>
<property
name="dialect">NHibernate.Dialect.MsSql2005Dialect</
property>
<property
name="connection.connection_string_name">Database</
property>
<property name="hbm2ddl.auto">create</property>
</session-factory>
</hibernate-configuration>
</configuration>
Program.cs
public class Program
{
public static void Main()
{
var sessionFactory = Fluently.Configure()
.Mappings(x =>
x.FluentMappings.AddFromAssemblyOf<Program>
().ExportTo(@"..\..\hbm"))
.BuildSessionFactory();
}
}
User.cs
public class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
UserMap.cs
public sealed class UserMap : ClassMap<User>
{
public UserMap()
{
this.Id(x => x.Id).GeneratedBy.Increment();
this.Map(x => x.Name);
this.SetAttribute("where", "IsDeleted=0");
this.AddPart(new SqlDeletePart());
}
}
SqlDeletePart.cs
public class SqlDeletePart : IMappingPart
{
public PartPosition PositionOnDocument
{
get { return PartPosition.Last; }
}
public int LevelWithinPosition
{
get { return 10; }
}
public void Write(XmlElement classElement, IMappingVisitor visitor)
{
var sqlDelete = classElement.AddElement("sql-delete");
sqlDelete.WithAtt("check", "rowcount");
sqlDelete.InnerText = String.Format("UPDATE {0} SET {1}=1 WHERE
{1}
=0", "[User]", "IsDeleted");
}
public void SetAttribute(string name, string value)
{
}
public void SetAttributes(Attributes attributes)
{
}
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---