Je suis nouveau dans le modèle de référentiel mais j'ai essayé, mon but est de faire un design qui me permette facilement avec quelques modifications "injection de dépendances, ou modifications de configuration" pour passer à un autre ORM sans toucher aux autres couches de solution .comment concevoir le modèle de dépôt pour être facile passer à un autre ORM plus tard?
je suis arrivé à cette mise en œuvre:
et voici le code:
public 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
}
utilisation
dans ma page 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();
}
Comme vous avez vu dans le code précédent je suis maintenant en utilisant LINQ to sql, et comme vous le voyez, mon code est lié à LINQ to sql, comment changer cette conception de code pour atteindre mon objectif "être capable de changer à un autre ORM easly, par exemple au cadre entité ADO.net ou subsonique »
conseils S'il vous plaît avec le code simple exemple