DanBlog

Il blog di Daniele Armanasco
posts - 48, comments - 73, trackbacks - 10

novembre 2007 Blog Posts

NHibernate e i trigger di SQL Server

Tentando di aggiornare una entità persistita su una tabella di SQL Server dove è presente un trigger ottengo l'eccezione seguente e l'aggiornamento fallisce: [NHibernate.AdoNet.TooManyRowsAffectedException] {"Unexpected row count: 2; expected: 1"} NHibernate.AdoNet.TooManyRowsAffectedException A quanto pare il fatto che il trigger aggiorni un altro record fa sì che il db ritorni 2 come numero di record aggiornati, il che fa pensare ad NH che ci sia stato un errore. Non ho trovato opzioni che dicano a NH di non verificare il numero di record aggiornati; sembra che l'unica soluzione consista nel disabilitare il conteggio dei record modificati nel trigger (impostare SET NOCOUNT ON prima del comando...

posted @ giovedì 15 novembre 2007 00:35 | Feedback (2) | Filed Under [ NHibernate ]

Escape di caratteri speciali

 - stringhe classiche: myString = "prova=\"aaa\"" (uso \)  - stringhe con @: myString = @"prova=""aaa""" (raddoppio gli apici)

posted @ giovedì 15 novembre 2007 00:11 | Feedback (1) | Filed Under [ Scoperte di un principiante ]

New line

System.Environment.NewLine OPPURE "/r/n"

posted @ giovedì 15 novembre 2007 00:09 | Feedback (4) | Filed Under [ Scoperte di un principiante ]

Rimuovere elementi da una Collection su cui devo ciclare

Siccome non posso rimuovere elementi da una collection mentre la sto scorrendo con un ciclo foreach, devo salvare gli elementi da eliminare in una lista temporanea e fare poi un altro ciclo, sulla lista temporanea, per rimuoverli: IList<Child> childrenToDelete = new List<Child>();                    foreach (Child child in Father.Children) {    if (...)       childrenToDelete.Add(child); } foreach (Child child in childrenToDelete)    Father.Children.Remove(child);                        

posted @ giovedì 15 novembre 2007 00:02 | Feedback (2) | Filed Under [ Scoperte di un principiante ]

Implementare flags mediante operatori bitwise

Innanzitutto dichiaro un enum con la lista dei possibili flag; è importante che l'enum abbia l'attributo [Flags] e che gli elementi della lista abbiano associato un valore che sia potenza di 2 (1, 2, 4, ...). Si possono definire fino a 32 elementi. [Flags] private enum Buttons : int { ···Ok = 1, Cancel = 2, Retry = 4, Help = 8 } Tip: è possibile aggiungere alla enumerazione un elemento "All" così: All = Ok | Cancel | Retry | Help Attivare più flag: concatenali con l'operatore bitwise "|" (or): Buttons buttons; buttons = Buttons.Ok | Buttons.Cancel; Disattivare un flag: usa l'operatore bitwise "~" (not): buttons &= ~Buttons.Cancel; Verificare se un flag...

posted @ mercoledì 14 novembre 2007 23:41 | Feedback (1) | Filed Under [ Scoperte di un principiante ]

Powered by:
Powered By Subtext Powered By ASP.NET