Diese Controller Erweiterung liefert anhand einer per Request übergebenen ID eine S#arp Architecture Entity zurück.
Die Entity wird nur dann neu gefetcht wenn die neue ID und die aktuelle ID nicht übereinstimmen.
http://code.google.com/p/sharp-architecture/
/// <summary>
/// Returns selected PersistentObject if an actual instance is different
/// </summary>
/// <typeparam name="T">Type of entity</typeparam>
/// <param name="controller"></param>
/// <param name="key">request key</param>
/// <param name="actualInstance">entity instance</param>
/// <returns></returns>
public static T GetEntityFromRequest<T>(this Controller controller, string key, T actualInstance)
where T : PersistentObject
{
int entityId = 0;
if ((controller.Request[key] != null) && (int.TryParse(controller.Request[key].ToString(), out entityId)))
if ((actualInstance == null) || (actualInstance.ID != entityId))
{
T entity = new GenericDao<T>().Load(entityId);
return entity;
}
return actualInstance;
}
Kommentare zum Snippet