Olá Victor,
Então, aí que está o problema. O VS não acusa erro, a única coisa que acontece é que o produto se associa com uma categoria que possui Id "sequencial" e não o Id que escolhi no momento do cadastro.
Estou usando o seguinte método para adicionar:
public void Adiciona(Produto produto)
{
ITransaction transacao = session.BeginTransaction();
Categoria novacategoria = produto.Categoria;
session.Save(novacategoria);
session.Save(produto);
transacao.Commit();
}
Pelo o que eu observei fazendo o debug, quando eu peço para ele adicionar a nova categoria no Save(novacategoria) o BD cria uma nova categoria e coloca um Id sequencial e não o Id que eu especifiquei no form. Assim, quando eu consulto o produto que deveria estar na categoria 1 aparece "Produto2", "preço:10", "categoria: 3"
Aí eu adiciono outro produto na categoria 1. Quando vou consultá-lo aparece: "Produto3", "preço:10", "categoria: 4"
Pelo o que percebi o Postgre está dando o ID sequencial como chave-primária para a categoria independentemente do que eu informo.
Dúvida: será que eu deveria associar outro ID ou colocar outra chave?
Se precisar eu gravo um screen com os passos.
Valeu!