Каскадное сохранение с беглым автоматическим отображением NHibernate - старый ответ все еще действителен?

Я хочу сделать именно то, что задает этот вопрос:Спасение каскада с беглым автоматическим отображением NHibernate

Использование Fluent Nhibernate Mappings для включения «каскада» глобально один раз для всех классов и типов отношений, используя один вызов, а не устанавливая его для каждого отображения индивидуально.

Ответ на предыдущий вопрос выглядит великолепно, но я боюсь, что API Fluent Nhibernate изменил свой синтаксис .WithConvention в прошлом году и сломал ответ ... либо это, либо я что-то упустил.

Я продолжаю получать кучу имен не найденных ошибок, связанных с IOneToOnePart, IManyToOnePart и всеми их вариациями:

«Не удалось найти тип или имя пространства имен« IOneToOnePart »(отсутствует директива using или ссылка на сборку?)»

Я пробовал официальный пример DLL, RTM DLL и последнюю сборку, и ни один из них, похоже, не дает VS 2008 увидеть требуемое пространство имен.

Вторая проблема заключается в том, что я хочу использовать класс с моей AutoPersistenceModel, но я не уверен, где находится эта строка: .ConventionDiscovery.AddFromAssemblyOf () в моем методе создания фабрики.

 private static ISessionFactory CreateSessionFactory()
            {

                return Fluently.Configure()
                  .Database(SQLiteConfiguration.Standard.UsingFile(DbFile))
                  .Mappings(m => m.AutoMappings
                        .Add(AutoMap.AssemblyOf<Shelf>(type => type.Namespace.EndsWith("Entities"))
                                .Override<Shelf>(map =>
                                {
                                    map.HasManyToMany(x => x.Products).Cascade.All();
                                })
                             )

                      )//emd mappings
                .ExposeConfiguration(BuildSchema)
                .BuildSessionFactory();//finalizes the whole thing to send back. 

            }

Ниже класс и с помощью утверждений я пытаюсь

   using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;

    using FluentNHibernate.Conventions;
    using FluentNHibernate.Cfg;
    using FluentNHibernate.Cfg.Db;
    using NHibernate;
    using NHibernate.Cfg;
    using NHibernate.Tool.hbm2ddl;
    using FluentNHibernate.Mapping;


    namespace TestCode
    {
        public class CascadeAll : IHasOneConvention, IHasManyConvention, IReferenceConvention
        {
            public bool Accept(IOneToOnePart target)
            {
                return true;
            }

            public void Apply(IOneToOnePart target)
            {
                target.Cascade.All();
            }

            public bool Accept(IOneToManyPart target)
            {
                return true;
            }

            public void Apply(IOneToManyPart target)
            {
                target.Cascade.All();
            }

            public bool Accept(IManyToOnePart target)
            {
                return true;
            }

            public void Apply(IManyToOnePart target)
            {
                target.Cascade.All();
            }
        }

    }

Ответы на вопрос(3)

Ваш ответ на вопрос