Enterprise library långsam med ExecuteSprocAccessor

När man använder det nya verktyget i enterprise library för att automatiskt mappa properties till objekten så har jag upplevt att det blir ungefär 5 gånger långsammare jämfört med det gamla sättet med GetStoredProcCommand och ExecuteReader.

Såhär kan det exempelvis se ut:

var db = EnterpriseLibraryContainer.Current.GetInstance<Database>("connectionstring") as SqlDatabase;
var myObject = db.ExecuteSprocAccessor<MyObject>("mySP", new object[] { param1, param2 }).SingleOrDefault();

Enterprise library-teamet har dock själva insett detta och skapat möjligheter för att slippa skapa upp stored-procedure-accessorn varje gång. Det gör man med CreateSprocAccessor.

Då kan det se ut såhär:

var db = EnterpriseLibraryContainer.Current.GetInstance<Database>("connectionstring") as SqlDatabase;
if (accessor == null)
    accessor = db.CreateSprocAccessor<MyObject>("mySP");
var myObject = accessor.Execute(new object[] { param1, param2 }).SingleOrDefault();

Tänk dock på att om du ändrar antalet parametrar i din SP så måste du ladda om accessorn eftersom den är cachad.

Kommentarer inaktiverade.

%d bloggare gillar detta: