Как я могу использовать Fluent NHibernate Automapping с несколькими списками одного типа в сущности?

Похоже, что NHibernate не может автоматизировать более одного IList данного типа в сущности.

Рассмотрим следующие две сущности (на основе примера кода examples.FirstProject, включенного в исходный код Fluent NHibernate).

public class Employee
{
    public virtual int Id { get; private set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
}

public class Store
{
    public virtual int Id { get; private set; }
    public virtual IList Staff { get; set; }
    public virtual IList Managers { get; set; }
}

Кажется, это совершенно правильная объектная модель - в каждом магазине работают несколько сотрудников и несколько сотрудников-менеджеров.

Но когда я выполняю автоматическую проверку, списки сотрудников и менеджеров сохраняются в таблице Employee с одинаковым внешним ключом.

Employee Table

Id FirstName LastName Store_id 
3  Daisy     Harrison   1 
4  Jack      Torrance   1 
5  Sue       Walkters   1 
6  Tom       Tommorow   1 
7  Dick      Diggler    1 

В результате получается, что когда данные считываются из базы данных, списки сотрудников и менеджеров заполняютсякаждый строка в таблице.

Для меня это похоже на ошибку в Automapping, но яЯ довольно новичок в NHibernate в любой форме, и нене знаю это полностьюОграничений пока нет.

В любом случае,как я могу заставить NHibernate рассматривать два списка как разные?

Если возможно, яБуду признателен за фрагмент кода Automapping, который напрямую обращается к примеру кода Iмы предоставляем (например, что-то вроде "поместите это точное переопределение в раздел .Mappings вашей CreateSessionFactory ").

Это потому что яЯ только немного знаком с Automapping, и совсем не знаком со старыми способами ведения дел, а это значит, что я не могу "заполнить бланки" очень хорошо еще.

Но если бы у вас было только время, чтобы указать мне правильное направление, это тоже было бы полезно.

Вот'Мой код CreateSessionFactory, чтобы дать некоторый контекст:

    private static ISessionFactory CreateSessionFactory()
    {
        ISessionFactory sessionFactory = null;

        const string autoMapExportDir = "AutoMapExport";
        if( !Directory.Exists(autoMapExportDir) )
            Directory.CreateDirectory(autoMapExportDir);

        try
        {
            var autoPersistenceModel = 
                AutoMap.AssemblyOf()
                        .Where(t => t.Namespace == "Examples.FirstProject.Entities")
                        .Conventions.Add( DefaultCascade.All() )
                ;

            sessionFactory = Fluently.Configure()
                .Database(SQLiteConfiguration.Standard
                              .UsingFile(DbFile)
                              .ShowSql()
                         )
                .Mappings(m => m.AutoMappings.Add(autoPersistenceModel)
                                             .ExportTo(autoMapExportDir)
                         )
                .ExposeConfiguration(BuildSchema)
                .BuildSessionFactory()
                ;
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

        return sessionFactory;
    }

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

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