使用实体框架、Dapper和Chain的仓储模式实现策略
生活随笔
收集整理的這篇文章主要介紹了
使用实体框架、Dapper和Chain的仓储模式实现策略
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
\
關(guān)鍵要點:
\- Dapper這類微ORM(Micro-ORM)雖然提供了最好的性能,但也需要去做最多的工作。\
- 在無需復(fù)雜對象圖時,Chain這類Fluent ORM更易于使用。\
- 對實體框架(Entity Framework)做大量的工作后,其性能可顯著提高。\
- 為獲得數(shù)據(jù)庫的最大性能,需要采用可能會有些繁瑣的投影(Projection)操作。\
- ORM整體上的局部更新可能會存在問題。
在現(xiàn)代企業(yè)開發(fā)中,可采用多種方法構(gòu)建數(shù)據(jù)存取層(data access layer ,DAL)。使用C#做開發(fā)時,DAL的最底層幾乎總是使用ADO.NET。但這時常會形成一個笨重的庫,所以通常會在DAL的底層之上再部署一個ORM層。為允許模擬和隱藏ORM的細節(jié),整個DAL包裝在存儲內(nèi)。\
在這一系列的文章中,我們將審視三種使用不同類型ORM構(gòu)建倉儲模式的方法,分別是:\
- 實體框架:一種傳統(tǒng)的“全特性”或“OOP”類型的ORM。 \
- Dapper:一種主要專注結(jié)果集映射的輕量級微ORM。 \
- Tortuga Chain:一種基于函數(shù)式編程理念的Fluent ORM。
本文將側(cè)重于開發(fā)人員可在典型倉儲中用到的那些基本功能。在本系列文章的第二部分,我們將著眼于那些開發(fā)人員基于實際情況而實現(xiàn)的高級技術(shù)。\
插入(Insert)操作
\對于任何CRUD操作集,通常會首先實現(xiàn)基本的插入操作,進而可用插入操作對其它的操作進行測試。\
Chain
\Chain使用列名和屬性名間的運行時匹配。對于在數(shù)據(jù)庫中并不存在的對象,除非啟用了嚴格模式(strict model),否則將忽略該對象上的屬性。類似地,沒有匹配屬性的列不能成為生成SQL的組成部分。
public int Insert(Employee employee)\ {\ return m_DataSource.Insert(\"HR.Employee\總結(jié)
以上是生活随笔為你收集整理的使用实体框架、Dapper和Chain的仓储模式实现策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux IPC udp/tcp/UN
- 下一篇: tomcat jdk servlet w