Måste du använda dig av repositories?
Om jag säger att du lika gärna kan använda dig av session direkt utan repositories? :)
Skicka runt sessionfactory i dina servicar som du anropar getcurrent i :).
Jag har NHibernate i botten, på det har jag en Repositoryklass och ett IRepository interface.
Nu skulle jag vilja utöka mitt IRepository med NHibernates ISession (för i vissa situationer kan det vara bra att komma åt kärnan i NHibernate).
Men eftersom mitt IRepository är generiskt så kan jag inte lägga till NHIbernates ISession direkt i mitt interface så här:
public interface IRepository<TEntity, TId>
{
...
NHibernate.ISession CurrentSession { get; }
}
för då har jag ju låst mitt interface till NHIbernate.
Ett alternativ är att istället returnera ett object så här:
public interface IRepository<TEntity, TId>
{
...
object CurrentSession { get; }
}
public class NHibernateRepository<TEntity, TId> : IRepository<TEntity, TId>
{
public object CurrentSession
{
get
{
return SessionFactory.GetCurrentSession();
}
}
}
men då måste jag typkonvertera så fort jag vill använda CurrentSession.
Det skulle ju funka, men om det går att undvika så är ju det bättre!
Kan jag på nått sätt wrappa NHIbernates ISession i en egen ISession på något konstigt sätt? :stud