EntityFramework 資料庫連接可用代碼動態設定

来源:http://www.cnblogs.com/xp1056/archive/2016/06/17/5593188.html
-Advertisement-
Play Games

摘自:http://blog.csdn.net/dyllove98/article/details/9289553 資料庫生成位置可控制(其實主要就是DbContext的構造函數) 1.使用DbContext的構造函數:public DbContext(string nameOrConnection ...


摘自:http://blog.csdn.net/dyllove98/article/details/9289553

資料庫生成位置可控制(其實主要就是DbContext的構造函數)

1.使用DbContext的構造函數:public DbContext(string nameOrConnectionString)

a、在app.config中添加:

1   <connectionStrings>
2     <add name="CodeFirstBlogContext" providerName="System.Data.SqlClient" connectionString="Server=.;Database=CodeFirstBlog;uid=sa;pwd=sa" />
3   </connectionStrings>

註:當然這裡也可以添加使用其他資料庫,但是要提起安裝好驅動:引用可參考此文:http://www.cnblogs.com/yylp521/p/3173176.html

b、在數據上下文類中添加構造函數(原來沒有顯示出現,調用預設的一般是本機.\sqlexpress資料庫實例)

1         public BlogContext(string config)
2             : base(config)
3         {
4         }

這裡可以顯示的引用配置文件中的配置庫,註:此處config可以直接寫name=CodeFirstBlogContext,是配置文件中的connectionStrings下的name。

2. 使用DbContext的構造函數:public DbContext(DbConnection existingConnection, bool contextOwnsConnection)

a、在數據上下文類中添加構造函數(原來沒有顯示出現,調用預設的一般是本機.\sqlexpress資料庫實例)

1 public BlogContext(DbConnection connection,bool contextOwnsConnection)
2             : base(connection, contextOwnsConnection) 
3         { }

b、使用時建立一個Connection即可

 1             string connStr = "Server=.;Database=CodeFirstBlog2;uid=sa;pwd=sa";
 2             using (SqlConnection conn = new SqlConnection(connStr))
 3             {
 4                 using (var db = new BlogContext(conn, false))
 5                 {
 6                     Console.WriteLine("輸入一個新的Blog名稱");
 7                     var name = Console.ReadLine();
 8 
 9                     var blog = new Blog { Name = name };
10                     db.Blogs.Add(blog);
11                     db.SaveChanges();
12 
13                     var query = from b in db.Blogs
14                                 orderby b.Name
15                                 select b;
16 
17                     foreach (var item in query)
18                     {
19                         Console.WriteLine(item.Name);
20                     }
21                 }
22             }
23             Console.ReadKey();
3. 使用數據的連接工廠
1             Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Server=.\sqlexpress;Database=CodeFirstBlog4;uid=sa;pwd=sa");
2             using (var db=new BlogContext())
3             {
4                 db.Database.Initialize(true);
5                 db.Blogs.Add( new Blog { Name = "test" });
6                 db.SaveChanges();
7             }

註:這裡指定資料庫名稱無效,應該與Database的Initialize方法有關,待查證。

  4.這裡還有其他的DbContext構造函數可用,可直接查看DbContext類的實現。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在WPF中 控制項綁定數據源時,數據源建議採用 ObservableCollection<T>集合 ObservableCollection<T> 類:表示一個動態數據集合,在添加項、移除項或刷新整個列表時,此集合將動態提供通知。數據源發生更改時,控制項內容也自動發生相應修改。無需重新綁定。 list< ...
  • 在上一篇博客中,筆者分享了一些從頁面整體的角度對頁面與ViewModel的思考。在本文中筆者希望從相對細節的角度分享一些對頁面與ViewModel的思考。 比如,當我們在更新View Model中的綁定數據時,應該怎樣更新呢?簡單的自然可以用新的數據實例直接替代舊的,但是這樣容易造成UI界面閃爍。尤 ...
  • 在很多情況下,我們利用IOC控制反轉可以很方便實現一些介面的適配處理,可以在需要的時候切換不同的介面實現,使用這種方式在調用的時候,只需要知道相應的介面介面,具體調用哪個實現類,可以在配置文件中動態指定,本篇主要介紹AutoFac的IOC組件的使用,用來實現微信介面處理的控制反轉功能。 ...
  • 工具:svcutil.exe 參數:指定wsdl、輸出源碼文件、輸出配置文件 示例: D:\>svcutil.exe http://localhost:8087/DataService/?wsdl /out:Client.cs /config:app.configMicrosoft (R) Serv ...
  • 密封類 密封類使用sealed修飾符聲明。 密封類中不可能有抽象方法【因為:抽象方法必須在抽象類中,而抽象類不能是密封的或者是靜態的,也就是說abstract 和sealed不能同時修飾一個類】 ...
  • 抽象類使用abstract修飾符聲明; 不能創建抽象類的實例; 抽象類只能用作其他類的基類; 抽象類中可以包含抽象成員和普通的非抽象成員; 抽象類自己可以派生自另外一個抽象類; 任何派生自抽象類的【類】,必須使用override關鍵字,實現該類所有的成員,除非派生類自己也是抽象類。 示例: 1.基類 ...
  • 技術綜合 《小黃鴨調試法,每個程式員都要知道的》 《開發一個這樣的 APP 要多長時間?》 《一段代碼讓你覺得人類智慧可以璀璨無比》 《成人網站有多大?》 《輸入Google網址回車之後發生了什麼?》 《為什麼有些大公司技術弱爆了?》 《高效 MacBook 工作環境配置》 《如何編寫讓別人能讀懂的 ...
  • ASP.net 第一章:ASP.NET介紹 1.搭建ASP.NET開發環境; 2.理解ASP.NET運行機制; 3.掌握ASP.NET兩種編碼方式。 4.Http協議。 關鍵點: 1.BS的工作原理是什麼? 2.伺服器端開發技術有哪些? Asp 、aspx、jsp、php 3.ASP.NET發展史。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...