msgbartop
Around Software Development and Innovation
msgbarbottom

27 Feb 11 A little reflection helper

Eccovi 2 piccole classi che uso di solito come helper per lavorare con la reflection…

using System;

using System.Collections.Generic;

using System.Text;

namespace Utils

{

public class ReflectionHelper

{

public static string GetStringPropertyValue(object obj,string property)

{

try{ return obj.GetType().GetProperty(property).GetValue(obj, null).ToString();

}catch(Exception){

return null;

}

}

public static object GetObjectPropertyValue(object obj, string property)

{

return obj.GetType().GetProperty(property).GetValue(obj, null);

}

public static int GetIntPropertyValue(object obj, string property)

{

object tmp= obj.GetType().GetProperty(property).GetValue(obj, null);

int val=int.MinValue;

if(tmp!=null)

int.TryParse(tmp.ToString(), out val);

return val;

}

}

public class ReflectionHelper<T>

{

public static T GetPropertyValue(object obj, string property)

{

return (T)obj.GetType().GetProperty(property).GetValue(obj, null);

}

}

}

Antonio

27 Feb 11 Mappare chiavi composte in NHibernate

Se vi è mai capitato di usare NHibernate ne avete sicuramente apprezzato la potenza. Personalmente mi è capitato di portare una applicazione legacy verso NHibernate cercando di mantenere intatta la stratuttura del db.

Ho avuto quindi la necessità di mappare una composite key composta da uno string e un intero in un file di mapping. Ecco come fare:

<?xml version=”1.0″ encoding=”utf-8″ ?>
<hibernate-mapping xmlns=”urn:nhibernate-mapping-2.2″ namespace=”ERP” assembly=”ERP_Objects”>
<class name=”ERP.ItemMagazzino” table=”DettaglioMagazzino”>
<composite-id>
<key-property name=”Magazzino” column=”Magazzino” type=”int”>
</key-property>
<key-property name=”Prodotto” column=”Prodotto” type=”string”></key-property>
</composite-id>
<property name=”Descrizione” column=”Descrizione”  type=”string” not-null=”false” />
<property name=”Giacenza” column=”Giacenza” type=”int” not-null=”false” />
<property name =”UM” column=”UM” type=”string” />
</class>
</hibernate-mapping>

Riporto anche il codice di esempio per recuperare l’oggetto dal DB:

ICriteria criteria = session.CreateCriteria(typeof(ItemMagazzino));
IList objs=   session.CreateCriteria(typeof(ItemMagazzino)).Add(“Prodotto”,”code”).Add(“Magazzino”,1).List();

Bye bye

Antonio

27 Feb 11 DateTime Forma

Alcune volte ci serve convertire una stringa non culture-based in  un DateTime, ecco come farey:

Dim paramvalue As Object = DateTime.ParseExact(“23/11/2007″, “dd/mm/yyyy”, System.Globalization.CultureInfo.InvariantCulture)

oppure se conosciamo la Culture:

Dim myDTFI As DateTimeFormatInfo
myDTFI = New CultureInfo(“it-IT”, False).DateTimeFormat

myDTFI.ShortDatePattern = “dd/MM/yyyy”
Dim MyDate As DateTime = DateTime.Parse(“20/06/2007″, myDTFI)

Bye

Antonio :-)

27 Feb 11 SQL Server Performance Tuning Tips

Qui potete trovare un interessante articolo su come ottimizzare le query TSQL.

Antonio