Soy nuevo en el patrón de repositorio pero lo intenté, mi objetivo es hacer un diseño que me permita fácilmente con algunas ediciones "inyección de dependencia, o ediciones de configuración" para poder cambiar a otro ORM sin tocar otras capas de solución .cómo diseñar un patrón de repositorio para que sea fácil cambiar a otro ORM más adelante?
llegué a esta implementación:
y aquí está el código:
usopublic interface IRepository<T>
{
T Get(int key);
IQueryable<T> GetAll();
void Save(T entity);
T Update(T entity);
// Common data will be added here
}
public interface ICustomerRepository : IRepository<Customer>
{
// Specific operations for the customers repository
}
public class CustomerRepository : ICustomerRepository
{
#region ICustomerRepository Members
public IQueryable<Customer> GetAll()
{
DataClasses1DataContext context = new DataClasses1DataContext();
return from customer in context.Customers select customer;
}
#endregion
#region IRepository<Customer> Members
public Customer Get(int key)
{
throw new NotImplementedException();
}
public void Save(Customer entity)
{
throw new NotImplementedException();
}
public Customer Update(Customer entity)
{
throw new NotImplementedException();
}
#endregion
}
en mi página aspx:
protected void Page_Load(object sender, EventArgs e)
{
IRepository<Customer> repository = new CustomerRepository();
var customers = repository.GetAll();
this.GridView1.DataSource = customers;
this.GridView1.DataBind();
}
como se vio en el código anterior i am ahora usando LINQ a sql, y como ve mi código está vinculado a LINQ to sql, cómo cambiar este diseño de código para lograr mi objetivo "poder cambiar a otro ORM fácilemte, por ejemplo, para ADO.net marco de la entidad, o subsónica"
consejos favor con código simple muestra de