<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ELinqORM數(shù)據(jù)訪問組件

          聯(lián)合創(chuàng)作 · 2023-09-30 02:55

          ELinq 是一個輕量簡單易用的開源Linq ORM數(shù)據(jù)訪問組件,支持Nullable類型和枚舉類型,對Linq的謂詞提供了完美的支持,旨在讓絕大部份的主流數(shù)據(jù)庫都使用 Linq 來進(jìn)行程序開發(fā),讓開發(fā)人員訪問數(shù)據(jù)庫從SQL中解放出來,易學(xué)易用上手快,配置簡單,并且提供了源代碼下載,方便定制。支持多數(shù)據(jù)庫,目前支持 Access、SQLServer、SqlCE、SQLite、MySQL、ORACLE,未來還會支持更多的數(shù)據(jù)庫。

          特點:簡單、高效、易用、靈活、快捷

          1. 配置簡單,支持多數(shù)據(jù)庫
          2. 支持Linq
          3. 支持集合對象的批量添加、刪除、修改
          4. 靈活的批量刪除(通過Linq表達(dá)式)功能
          5. 靈活的批量更新(通過Linq表達(dá)式)功能
          6. 支持一對一映射(不需要配置映射關(guān)系自動映射)
          7. 支持一對多(不需要配置映射關(guān)系自動映射)
          8. 支持多對一(不需要配置映射關(guān)系自動映射)
          9. 遵從數(shù)據(jù)庫的設(shè)計理念,不支持多對多,可以把多對多轉(zhuǎn)化成兩個一對多
          10. 不支持級聯(lián)更新、級聯(lián)刪除,開發(fā)人員完全手工維護(hù)外鍵引用完整性
          11. 不支持LazyLoad機(jī)制,默認(rèn)就不會加載,除非指定Include方可
          12. 不支持Session緩存機(jī)制
          13. 不支持二級緩存
          14. OR映射也支持xml配置文件
          15. OR映射可以不需要任何Attribute配置
          16. OR映射的方式:a. Fluent API 方式,b. Attribute 方式,c. 約定方式,d. 混合方式(可以混合a、b、c 三種方式,映射的優(yōu)先級a>b>c),e. Xml方式
          17. 字符串配置簡單,遵從.net 的配置規(guī)范,沒有另起灶爐,比如EF,或者NH
          18. 只要有有數(shù)據(jù)庫關(guān)系理念、懂得Linq表達(dá)式就能馬上上手
          19. ELinq 主要對字符串類型做了參數(shù)化,數(shù)值類型沒有做參數(shù)化處理,由于有些數(shù)據(jù)庫函數(shù)不支持?jǐn)?shù)值類型的參數(shù)化參數(shù)。

          設(shè)計理念

          一: 約定勝于配置

          • 連接字符串的配置完全遵循.Net 的連接字符串配置規(guī)范。
          • 表名映射原則: 默認(rèn)情況下表名和實體類名完全一致,如果不一致但是大部分都遵循一定的規(guī)律,比如表名都是復(fù)數(shù),類名都是單數(shù)等,那么可以通過通過SetClassNameToTalbeName策略方法來進(jìn)行,針對個別不一致情況可以通過TableAttribute標(biāo)簽來制定,或者通過自定義ClassMap來進(jìn)行,也可以通過XML方式進(jìn)行統(tǒng)一配置
          • 列名映射原則:默認(rèn)情況下實體的屬性或字段和表中列名完全一致(不區(qū)分大小寫),如果不一致那么可以通過ColumnAttribute標(biāo)簽來制定,也可以通過自定義ClassMap來進(jìn)行,也可以通過XML方式進(jìn)行統(tǒng)一配置
          • 單一主鍵映射原則:默認(rèn)情況下實體的ID屬性或”實體名稱"+ID的屬性自動映射為表的主鍵,當(dāng)字段或?qū)傩缘念愋褪荌nt型或Long類型時,那么該字段在數(shù)據(jù)庫中應(yīng)是自動增一或基于序列的方式
          • 多主鍵映射原則:如果表中有聯(lián)合主鍵那么需要在是實體類中把對應(yīng)的字段或?qū)傩蕴砑覫dAttribute標(biāo)簽即可
          • 一對多映射原則:假設(shè)有兩個實體Customer 和 Order兩個實體,Customer 里面包含一個Order的列表屬性,那么只需要在Order類里面包含一個CustomerID 的屬性或字段即可自動完成一對多映射,當(dāng)然也可以通過AssociationAttribute標(biāo)簽來指定映射的ThisKey 和ThatKey來手動建立關(guān)聯(lián)(建議自動建立)。
          • 多對一映射原則:假設(shè)有兩個實體Customer 和 Order兩個實體,Order里面包含一個Customer的屬性引用,那么只需要在Order類里面包含一個CustomerID 的屬性或字段即可自動完成一對多映射,當(dāng)然也可以通過AssociationAttribute標(biāo)簽來指定映射的ThisKey 和ThatKey來手動建立關(guān)聯(lián)(建議自動建立),其實一對多和多對一的映射完全一致都需要在多方的那里添加一個屬性(一方的類名名稱+“ID”)。
          • 多對多映射原則:不支持,需要轉(zhuǎn)換成兩個一對多映射,和數(shù)據(jù)庫完全保持一致.

          二:基于關(guān)系的OR映射的原則

          表和實體是一一對應(yīng)的,不支持多對多,完全遵循數(shù)據(jù)庫的設(shè)計規(guī)范,降低開發(fā)人員的學(xué)習(xí)成本(因為數(shù)據(jù)庫不支持多對多,如果OR映射支持多對多那么開發(fā)人員 將要學(xué)習(xí)多對多的映射規(guī)則,比如NHibernate,ManyToMany、Set、Bag、Reverse等配置規(guī)范以及在多對對數(shù)據(jù)保存的時候也需 要很多學(xué)習(xí)成本)

          三:無狀態(tài)原則

          DbContext中沒有保存實體的狀態(tài),沒有任何數(shù)據(jù)緩存,所有的數(shù)據(jù)都是和數(shù)據(jù)庫實時的,只要調(diào)用DbSet的Insert、Update、Save方法將立即和數(shù)據(jù)庫進(jìn)行對應(yīng)的操作。

          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色吊操| 亚洲最大在线观看 | 亚洲性爱综合 | 国产精品无码7777777 | 精品xxxx |