У меня есть пара классов, которые выглядят следующим образом:
public class Client
{
public int Id {get;set;}
public string Name {get;set;}
}
public class User
{
public int Id {get;set;}
public string Email {get;set;}
public Client Client {get;set;}
}
Я использую ConventionModelMapper и SchemaUpdate из NHibernate 3.2 для генерации схемы в моей базе данных SQL Server, и я хочу, чтобы свойство Client былоПользовательский класс, который будет отображен в столбец ClientId
с внешним ключом.Мой код соглашения выглядит следующим образом:
mapper.AfterMapManyToOne += (inspector, member, map) =>
{
map.Column(member.LocalMember.Name + "Id");
// ...
};
Это работает, я получаю столбец ClientId
, который отображается как внешний ключ, но я также получаю столбец Client
, который такжеотображается как внешний ключ.Похоже, что NHibernate рассматривает свойство Client как стандартное свойство (и, следовательно, создает для него столбец Client
), а также свойство ManyToOne (в результате появляется дополнительный столбец ClientId
).Как я могу предотвратить создание столбца Client