Jestem nowy na wzór repozytorium, ale próbowałem, moim celem jest stworzenie projektu, który pozwoli mi łatwo z kilkoma zmianami "wtyczkę zależności lub edycje konfiguracji", aby móc przełączyć się na inną ORM bez dotykania innych warstw rozwiązania .jak zaprojektować wzór repozytorium, aby później łatwo przejść na inny ORM?
dotarłem tej realizacji:
i oto kod:
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
}
Wykorzystanie w mojej strony 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();
}
Jak widzieliśmy w poprzednim kodzie I am teraz przy użyciu LINQ do sql, i jak widzisz mój kod jest związany z LINQ do sql, jak zmienić ten projekt kodu, aby osiągnąć mój cel "być w stanie zmienić na inny ORM w łatwy, na przykład do Entity Framework ADO.net lub poddźwiękowych”
Proszę o poradę z kodem prosty przykładowy