[大霧霧霧霧] 告別該死的 EFCore Fluent API (續)

玩雙截棍的熊貓發表於2020-11-25

朋友們好啊,

我是 .NET 打工人 玩雙截棍的熊貓

剛才有個朋友問我 貓貓發生什麼事了

我說 怎麼回事?

給我發了一張截圖

image-20201124155030919

我一看!嗷!原來是zuo天有兩個資料庫,

一個四十多歲,一個三十多歲

它們說

有一個說我列名全大寫 (全小寫),EFCore生成列名區分大小寫

貓貓你能不能幫幫我 ?

幫助治療一下我全大寫(全小寫)

我說可以

我說你看 [大霧霧霧霧] 告別該死的 EFCore Fluent API

他說 你這也沒用

我說 我這有用

這個是反射,.NET 是講反射的,反射動態呼叫

2000 年釋出的 .NET 都有反射特性的

他說要試試

我說可以

我一說

他 “啪!” 就站起來了,很快啊

然後上來就是一個 低效能

一個 不合理

一個 真辣雞!

image-20201124155259700

我全部防出去了

防出去以後自然是傳統藝能宜點到為止,程式碼放在了截圖裡,沒複製出來。我笑了一下,準備撤回。

image-20201124155334456

因為這個時候按照傳統藝能他已經輸了,如果這程式碼發力,一段就把電腦效能吃滿了(霧霧霧)。

他也承認我的類庫有點意思,他不知道程式碼截圖已經放到他臉上,他承認我先把程式碼截圖發出來。

我撤回程式碼截圖不打了,他突然襲擊大量反射效能低來打我臉。

img

我沒有大E啊,也沒有閃。

“啪!”就使出一招 Riven.EntityFrameworkCore 打到他臉上

直接重寫 Entity Framework Core 驅動預設實現,從源頭解決大小問題。


目前擴充套件的 EF Core 資料庫驅動

  • PostgreSQL
  • Oracle
  • DevartOracle

基本用法

  1. 引入nuget包
  • Postgresql

    • dotnet cli

      dotnet add package Riven.EntityFrameworkCore.PostgreSQL

    • nuget package manager

      Install-Package Riven.EntityFrameworkCore.PostgreSQL

  • Oracle

    • dotnet cli
      dotnet add package Riven.EntityFrameworkCore.Oracle
    • nuget package manager
      Install-Package Riven.EntityFrameworkCore.PostgreSQL
  • DevartOracle

    • dotnet cli
      dotnet add package Riven.EntityFrameworkCore.DevartOracle
    • nuget package manager
      Install-Package Riven.EntityFrameworkCore.DevartOracle
  1. 使用驅動
  • PostgreSQL
builder.UseRivenPostgreSQL(
  "database connection string"
);
// or
builder.UseRivenPostgreSQL(
  "database connection string",
  (options)=>
  {

  }
);
  • Oracle
// Default SQLCompatibility V11
builder.UseRivenOracle(
  "database connection string"
);
// or
builder.UseRivenOracle(
  "database connection string",
  (options)=>
  {
      //  SQLCompatibility V12
      //options.UseOracleSQLCompatibility(OracleSQLCompatibility.V12)
  }
);
  • Devart Oracle
var license = ""; // Devart license
builder.UseRivenDevartOracle(
  "database connection string",
  license
);
// or
builder.UseRivenDevartOracle(
  "database connection string",
  license,
  (options)=>
  {

  }
);

E.EntityFrameworkCore.Extensions 相比,更底層 / 更原生 / 效能更佳

雖然暫時不支援 E.EntityFrameworkCore.Extensions 的一些功能,但我會往裡加的

如果覺得好用的話請 收藏 轉發 star fork 一把梭 原始碼倉庫

img

RivenFx Riven 玩雙截棍的熊貓 EFCore EF Core EntityFramework EntityFrameworkCore

[EF Core Oracle 列名大小寫問題]
[EF Core Oracle column name case problem]
[EF Core PostgreSql 列名大小寫問題]
[EF Core PostgreSql column name case problem]

[EFCore Oracle 列名大小寫問題]
[EFCore Oracle column name case problem]
[EFCore PostgreSql 列名大小寫問題]
[EFCore PostgreSql column name case problem]

[entity framework core Oracle 列名大小寫問題]
[entity framework core Oracle column name case problem]
[entity framework core PostgreSql 列名大小寫問題]
[entity framework core PostgreSql column name case problem]

相關文章