1. 程式人生 > >EntityFrameWork Code First 多資料庫以及自定義字串的使用+連線字串加密呼叫

EntityFrameWork Code First 多資料庫以及自定義字串的使用+連線字串加密呼叫

PS:本來第一版發的在編輯器裡面直接能截圖 結果發現提交 之後圖沒了我勒個去,然後圖的地方就用程式碼代替了 無奈,看起來比較亂了就

關於使用EF-CodeFirst中多資料庫使用 以及 自定義字串的使用 +連線字串加密呼叫

度娘好久都沒有發現有資料能直接解決這3個問題的文章

這裡就把自己摸索的經驗給大家分享一下

不多說直接上程式碼

ef-cf=EntityFrameWork Code First

1,常規ef-cf引用之後 生成的程式碼以及config配置 丟出來,怎麼生成的這個就自己找 很多

我這裡是一個數據庫對應一個對應-都是常規的 最後多個數據到一個web裡面

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="WorkflowCenterContext" connectionString="Data Source=10.0.126.97;Initial Catalog=WorkflowCenter;Persist Security Info=True;User ID=sa;Password=K2pass!!;MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

那麼這個web裡面的配置很簡單 直接拷貝過來,然後在connectstrings裡面add就好了 直接看程式碼

3個數據庫的ef


<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="Zemt.Process.Web.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <connectionStrings>
    <add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
     providerName="System.Data.SqlClient" />
    <add name="WorkflowCenterContext" connectionString="Data Sourcenitial Catalog=WorkflowCenter;Persist Security Info=True;User ID=sa;PasswoActiveResultSets=True"
      providerName="System.Data.SqlClient" />
    <add name="CapitaIntranetContext" connectionString="Data Source=;Initial Catalog=CapitaIntranet;Persist Security Info=True;User ID=sa;PctiveResultSets=True"
      providerName="System.Data.SqlClient" />
    <!--<add name="ZemtProcessContext" connectionString="Data Source=;Initial Catalog=ZemtProcess;Persist Security Info=True;User ID=k2sa;PasswpleActiveResultSets=True"
         providerName="System.Data.SqlClient" />
      <add name="WorkflowCenterContext" connectionString="Data Source=Initial Catalog=WorkflowCenter;Persist Security Info=True;User ID=k2sa;PasltipleActiveResultSets=True"
           providerName="System.Data.SqlClient" />
      <add name="CapitaIntranetContext" connectionString="Data Source=;Initial Catalog=CapitaIntranet;Persist Security Info=True;User ID=k2sa;PasspleActiveResultSets=True"
            providerName="System.Data.SqlClient" />-->
  </connectionStrings>

2,ef-cf裡面自定義字串問題

首先 上面來說 他已經自動生成web配置檔案了,從程式碼中該不好下手

下面是自動生成的資料庫代理類

using System.Data.Entity;
using System.Data.Entity.Infrastructure;


namespace Zemt.WorkflowCenter.DataBase
{
    public partial class WorkflowCenterContext : DbContext
    {
        static WorkflowCenterContext()
        {
            Database.SetInitializer<WorkflowCenterContext>(null);
        }


        public WorkflowCenterContext()
            : base("Name=WorkflowCenterContext")
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {


        }
    }
}

當然之前木有看懂這個,所以覺得很難下手,最後看了資料 :base的意思 就是呼叫父類的建構函式,然後進去看base這函式的定義


 [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
        [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public DbContext(string nameOrConnectionString);

發現base可以直接傳連線字串進去,2種模式 直接傳字串或者傳配置節點 也就是這裡的name

 <connectionStrings>
    <add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
     providerName="System.Data.SqlClient" />
    <add name="WorkflowCenterContext" connectionString="Data Sourcalog=WorkflowCenter;Persist Security Info=True;User ID=sa;PasswpleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
    <add name="CapitaIntranetContext" connectionString="Data Souog=CapitaIntranet;Persist Security Info=True;User ID=sa;PaltipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />

那麼好說 改下就OK了


    public ZemtProcessContext()
            : base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
        {
        }

3,關於ef-cf中的配置檔案加密 

看了1,2功能之後,加密也很簡單,直接用一個加密類把字串加密 然後再解密就好了 直接上圖


 <add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
     providerName="System.Data.SqlClient" />

然後解密呼叫


  public ZemtProcessContext()
            : base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
        {
        }

以上就是摸索2天+的成功

相關推薦

EntityFrameWork Code First 資料庫以及定義字串的使用+連線字串加密呼叫

PS:本來第一版發的在編輯器裡面直接能截圖 結果發現提交 之後圖沒了我勒個去,然後圖的地方就用程式碼代替了 無奈,看起來比較亂了就 關於使用EF-CodeFirst中多資料庫使用 以及 自定義字串的使用 +連線字串加密呼叫 度娘好久都沒有發現有資料能直接解決這3個問題的文

八、JAVA執行緒:執行緒池原理以及定義執行緒池 ThreadPool

為什麼會需要執行緒池技術? (1)Thread是一個重量級的資源,它的建立,啟動以及銷燬都是比較耗費效能的;重複利用執行緒,減少執行緒建立,銷燬的開銷,是一種好的程式設計習慣。 (2)通過new Thread的方法建立執行緒難以管理,並且難以控制數量,執行緒的數量通常和系統的效能呈拋

Next Cloud通過修改資料庫表,達到替換檔案而不改變分享的連結地址的效果,以及定義分享連結地址

# Next Cloud如何通過修改資料庫表,達到替換檔案而不改變分享的連結地址的效果,以及自定義分享的連結地址 本文首發於我的個人部落格:https://chens.life/nextcloud-change-share-files.html ## 前言 本站 [失眠孤島](https://chens

Zabbix的通知功能以及定義腳本告警

edi web管理 har idt cti 遠程 rip 9.png ble 本節內容: Zabbix的通知功能 定義接收告警的用戶 定義Action Zabbix自定義腳本發送報警郵件 一、Zabbix的通知功能 在配置好監控項和觸發器之後,一旦正常工作中的某觸發

Android Studio 默認keystore 以及定義keystore

font upper 不能 use src lis con 位置 sha1 我們使用Android Studio 運行或測試我們的app 它使用一個默認的debug.keystore進行簽名。 這個默認簽名(keystore)是不需要密碼的,它的默認位置在 $HOME/

在一個網頁中是可以次引用定義字體的

image 分享 images 一個 .com 自定義 alt img es2017 在一個網頁中是可以多次引用自定義字體的

事件監聽和window.history以及定義創建事件

lac 瀏覽器 捕獲 tps details push AD his listener 1.事件監聽window.addEventListener方法: Window.addEventListener(event, function, useCapture); useC

監控服務器cpu、磁盤、模板以及定義key

local owa pki 監控cpu 自動 parameter 發現 整形 spa 一、檢測主機存活 net.tcp.service.perf[tcp,,10050] Float型 返回0代表端口掛了 zabbix fping要開啟sudo權限之類比較不方便

EntityFramework Code-First-------領域類配置之DataAnnotations

master 命名空間 索引 student 集合 註意 排序 first ann EF Code-First提供了一個可以用在領域類或其屬性上的DataAnnotation特性集合,DataAnnotation特性會覆蓋默認的EF約定。 DataAnnotation存在

EntityFramework Code-First教程(一)

不錯 iis entity [] com stand tab standard ron 前言:學習了EF框架這麽久,還沒有好好總結一番,正好遇到一國外的網站,發現不錯,隨即翻譯過來,一是讓自己復習一遍,二是供廣大初學者學習,翻譯過程中加入了一些自己的理解,如有錯誤,還請指出

cookie和session以及定義分頁

cookie值 無法 解析 link try render 強制 raise 需求 cookie Cookie的由來 大家都知道HTTP協議是無狀態的。 無狀態的意思是每次請求都是獨立的,它的執行情況和結果與前面的請求和之後的請求都無直接關系,它不會受前面的請求響應情況直

Retrofit 2.0基於OKHttp更高效更快的網絡框架 以及定義轉換器

讀取數據 index gson final resp adapter oid 簡單的 build 時間關系,本文就 Retrofit 2.0的簡單使用 做講解 至於原理以後有空再去分析 項目全面、簡單、易懂 地址: 關於Retrofit 2.0的簡單使用如下: htt

Android Studio 預設keystore 以及定義keystore使用

我們使用Android Studio 執行或測試我們的app  它使用一個預設的debug.keystore進行簽名。 這個預設簽名(keystore)是不需要密碼的,它的預設位置在 $HOME/.android/debug.keystore,如果不存在Android s

Spring Boot 常用配置以及定義配置

原文地址:https://renguangli.com/articles/spring-boot-config Spring Boot 常用配置簡單介紹及使用 多環境配置 Spring Boot Profile 在 Spring Boot 中多環境配置檔名需要滿足 app

Java IO流中的異常處理以及定義異常例項

文章目錄 異常 自定義異常例項 finally中特殊情況例項 異常 1、 Throwable類  a) 嚴重問題:Error,比如說記憶體不夠,一般程式中不進

spring 容器的帶事件以及 定義事件

ApplicationEvent spring 的事件是為bean與bean 之間的訊息通訊提供了支援,當一個bean 處理完一個任務後,希望另外一個bean 知道並能夠做出相應的處理,這時需要另外一個bean監聽當前bean 所傳送的事件。 ApplicationEvent以及Li

微信小程式poster封面閃逝以及定義播放按鈕

小程式中poster封面閃消失,以及用圖片自定義播放按鈕,注意下面是以元件的形式來寫非頁面如下: wxml: <view > <video id='myvedio' bindended="endvedio" style="width: 100%;height=400px;

golang 檔案與定義

新建個專案目錄,專案目錄裡的檔案package為main即可,如果是第三方包,這裡package就是為你的包名,比如說demo。 執行的話就是 go run main.go util.go 這樣,當然 go build 也ok。 還可以新建個./src/my目錄,裡面的檔案package就要

kafka模擬生產者-消費者以及定義分割槽

基本概念 kafka中的重要角色   broker:一臺kafka伺服器就是一個broker,一個叢集可有多個broker,一個broker可以容納多個topic   topic:可以理解為一個訊息佇列的名字   partition:分割槽,為了實現擴充套件性,一個topic可以分佈到多

Spring Boot Configuration 配置檔案讀取以及定義配置檔案

新增configuration  maven依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configurati