我一直在努力與此相似的一段時間。如果你的架構這樣的..體系結構,所以你可以交換SQL的實體框架,反之亦然
Project.Domain
- Entities
- Repositories interfaces Project.Persistence.EF
- Repositories
- ContextProvider
- etc..
Project.Persistence.SQL
???
Project.Tasks
...
Project.Presentation
...
有了一個IoC,你幾乎可以改變任何成分爲他人組件..這裏最重要的接口,它是關係到的問題是IRepository(通用)位於域。只有定義,而不是執行。
我一直在尋找的主要問題是如何我可以在幾乎沒有時間切換爲EF SQL?
如果你看看倉庫接口..它的目的顯然與上下文工作。
public interface IRepository<T> where T : class
{
void Add(T entity);
void Delete(T entity);
T GetById(long Id);
}
我怎麼能那麼做這個倉庫來使用SQL實現也工作,所以我可以使用國際奧委會選擇愨EF和SQL?
當然,我可以製作IRepositorySQL和IRepositoryEF,但是我不能爲此使用IoC ...並再次卡住。
任何意見或建議或方式來做事?
謝謝。
你真的應該決定你的方法,然後堅持下去,有內聯SQL之間進行切換,或使用你的意思是什麼用的ORM – Kane
沒有什麼價值「它的目的是與上下文來工作?」我在'IRepository'中看不到任何需要任何上下文的參考... –
沒有錯。因爲我試圖找到一個解決方案,你可以非常靈活,但我認爲我錯過了這一點.. – Rushino