Guilherme,
No método Noticias_Adicionar deverias usar SaveOrUpdateCopy em vez de
Save, já que a entidade pertence a outra sessão (ou a nenhuma), e o
NHibernate não tem forma de saber se esta é recém-criada ou está
modificada; está a funcionar porque o valor default de Int32 (unsaved-
value) é 0, o NHibernate olha para a chave e vê que não tem valor,
pelo que assume que a entidade é nova, mas se usasses outro tipo de
chave (Guid), já não deve funcionar.
Atenção que o not-null no mapeamento apenas te garante que, se usares
o NHibernate para gerar a base de dados, ele cria as colunas como NOT
NULL, se é isso que pretendes, define também o tamanho máximo com o
atributo length; tem atenção que este atributo não vai causar
validação da entidade, se tentares gravar valores null, vai estoirar.
Sempre que as colunas têm o mesmo nome das propriedades, sem contar
com maiúsculas, como no teu exemplo, podes omitir o atributo column, o
NHibernate assume que é igual ao name.
Relativamente à forma como estás a gerar o session factory, tudo bem,
assegura-te que só há uma session factory por application. Quanto à
session, é frequente guardá-la no request (HttpContext.Current.Items),
criando-a no BeginRequest e fechando-a no EndRequest (pattern open
session in view).
Abraço,
RP
On Jun 12, 6:55 pm, Guilherme Cardoso <
guilherme-card...@msn.com>
wrote: