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.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
-~----------~----~----~----~------~----~------~--~---