DanBlog

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

November 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 @ Wednesday, November 14, 2007 11:35 PM | Feedback (2) | Filed Under [ NHibernate ]

Escape di caratteri speciali

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

posted @ Wednesday, November 14, 2007 11:11 PM | Feedback (1) | Filed Under [ Scoperte di un principiante ]

New line

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

posted @ Wednesday, November 14, 2007 11:09 PM | 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 @ Wednesday, November 14, 2007 11:02 PM | 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 @ Wednesday, November 14, 2007 10:41 PM | Feedback (1) | Filed Under [ Scoperte di un principiante ]

Powered by:
Powered By Subtext Powered By ASP.NET