Any ideas how to write custom mapping part after all properties?

On 22 июл, 14:49, Alexander Kovtik <[email protected]> wrote:
> 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.ProxyFactoryFa­ctory,
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to