lo que es la práctica preferida cuando linq2sql utilizando (en aplicaciones de ASP.NET MVC): para crear "Singleton" para DataContext
como:linq2sql: Singleton o el uso, las mejores prácticas
partial class db
{
static db _db = new db(global::data.Properties.Settings.Default.nanocrmConnectionString, new AttributeMappingSource());
public static db GetInstance()
{
return _db;
}
}
o para recuperar nueva instancia cuando que necesitaba dentro using
:
using (db _db = new db())
{
...
}
el uso de using
trae algunas limitaciones en código. entonces prefiero usar singleton one. ¿Es una práctica extraña?
UPD:
explicación de por qué estoy usando Singleton:
public class UserGroupRepository
{
public static IQueryable<Group> RolesFor(string username)
{
User user = UserRepository.WithUsername(username);
return from g in db.GetInstance().Groups
join ug in db.GetInstance().UsersGroups on g.Id equals ug.GroupId
where ug.UserId == user.Id
select g;
}
}
tengo este método. debido a que devuelve IQueryable - Puedo continuar compilando la consulta sin que se ejecute, por lo que aquí solo devuelve el resultado diferido.
si reescribo el mismo código con using
- no puedo devolver IQueryable (porque db se eliminará e IQueryable también se perderá), y lo cambiaría a List. y ahora este método devolverá una "enorme" lista desde la cual filtraré los datos en la función anterior.
espero que describa lo suficientemente detallado.
por curiosidad, ¿qué limitaciones crea el uso de "usar"? Tal vez hay un buen modo de eludirlos ... – LorenVS
@LorenVS: apuesto a que las "limitaciones" se deben a que soy novato, así que creo que hay una solución elegante con 'using' también ;-) – zerkms
Se ha agregado una edición a mi publicación con respecto a su actualización – LorenVS