Pertanyaan saya mirip dengan yang ini di Stack Overflow: Apa cara yang benar untuk menggunakan Unit Kerja / Repositori di dalam lapisan bisnis?
Skenario:
- Solusi .Net
- IRepository digunakan untuk mengambil objek dari DB
- IUnitOfWork digunakan untuk memungkinkan transaksi di beberapa repositori
Ini masuk akal bagi saya dan saya telah menerapkan sesuatu di sepanjang garis ini yang berfungsi dengan baik. Sekarang saya ingin memperkenalkan lapisan logika bisnis dan saya mengalami kesulitan mengatur tiga elemen (BLL, UnitOfWork dan Repository) dalam pikiran saya.
Pemahaman saya:
- Repositori - pengambilan data, manipulasi
- UnitOfWork - kegigihan
- BLL - logika yang relevan dengan bisnis ('dunia nyata') (tidak suka istilah itu!)
Pertimbangkan kami memiliki ujung depan ASP.Net MVC.
Seperti apa bentuk BLL dan seperti apa pengontrol MVC yang menggunakannya?
Untuk referensi: Saya bertanya-tanya apakah mungkin implementasi IUnitOfWork / IRepository saya mungkin menjadi penyebab kebingungan saya.
public class IRepository<T>
{
private IObjectSet<T> objSet;
public IRepository<T>(IUnitOfWork uow)
{
objSet = uow.CreateObjectSet<T>();
}
public IQueryable<T> Add(T entity)
{
objSet.Add(entity);
}
//etc. etc. for delete, attach, getall
}
Jadi saya merasa seperti memiliki BLL, saya harus mengirimkannya ke IUnitOfWork, sehingga dapat menggunakannya untuk membuat instance IRepository yang diperlukan. Tetapi bagaimana BLL (memisahkan DLL dari ujung depan) 'tahu' implementasi IRepository apa yang akan dibangun?