Свободное автоматическое отображение Nhibernate - 2 внешних ключа к одной таблице? - PullRequest
2 голосов
/ 14 сентября 2009

Допустим, я делаю основную систему транзакций, в которой у меня есть следующие объекты.

public class User
{
   public virtual int Id{get; set;}
}

public class Transaction
{
   public virtual int Id{get; set;}
   public virtual Item Item {get; set;}
   public virtual User Seller{get; set;}
   public virtual User Buyer{get; set;}
}

Обратите внимание, что у меня есть два отношения назад к объекту User. Когда FHN генерирует схему таблицы, я получаю 3 отношения FK из таблицы транзакций обратно в таблицу User, "Buyer_id", "Seller_id", "User_id"

Я думаю, что он автоматически генерирует поле «User_id» ошибочно, основываясь на том факте, что по умолчанию ожидает, что ссылочное свойство будет называться «User»

Как бы я указал это отображение, используя FNH?

1 Ответ

9 голосов
/ 14 сентября 2009

Yarg!

Я, наконец, понял, что при выполнении автоматического сопоставления необходимо указать переопределение с двумя отдельными сопоставлениями Has Many

   return Fluently.Configure()
    .Database(persistenceConfigurer)
    .Mappings(m => m.AutoMappings.Add(
        AutoMap.AssemblyOf<User>()
            .Override<User>(map=> map.HasMany(user=> user.Transactions).KeyColumn("Buyer_id"))
            .Override<User>(map => map.HasMany(user => user.Transactions).KeyColumn("Seller_id"))                
        ))
    .ExposeConfiguration(BuildSchema)
    .BuildSessionFactory();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...