В моем примере у меня есть Серверы, и эти Серверы принадлежат к ServerGroup. Я заполняю ServerGroup серверами и сохраняю ServerGroup. Таблица ServerGroup заполнена, а серверы - нет.
public ServerGroupMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasMany(x => x.ServersInGroup)
.Inverse();
}
public ServerMap()
{
Id(x => x.Id);
Map(x => x.Description);
Map(x => x.Address);
Map(x => x.Password);
Map(x => x.Ports);
HasMany(x => x.Connections)
.Inverse();
References(x => x.ServerGroup)
.Not.Nullable();
}
Когда я сохраняю persist и экземпляр ServerGroup в базу данных, я ожидал, что NHibernate также правильно вставит серверы, содержащиеся в ServerGroup, в таблицу Server.
NHibernate создает мою схему БД. Вот объекты Server и ServerGroup:
public class ServerGroup
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Server> ServersInGroup { get; set; }
public ServerGroup()
{
ServersInGroup = new List<Server>();
}
public virtual void AddServer(Server server)
{
server.ServerGroup = this;
ServersInGroup.Add(server);
}
}
public class Server
{
public virtual int Id { get; private set; }
public virtual string Description { get; set; }
public virtual string Address { get; set; }
public virtual string Ports { get; set; }
public virtual string Password { get; set; }
public virtual ServerGroup ServerGroup { get; set; }
public virtual IList<Connection> Connections { get; set; }
public Server()
{
Connections = new List<Connection>();
}
public virtual void AddConnection(Connection connection)
{
connection.CurrentServer = this;
Connections.Add(connection);
}
}
Почему серверы внутри 'ServersInGroup' не сохраняются в базе данных при вставке ServerGroup? Спасибо!