日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL

發布時間:2024/7/23 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開始介紹之前,首先來看看官方對Entity Framework的解釋:Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.這里面涉及到幾個關鍵的知識點:1 首先它是一個對象關系映射。2 其次它使用的是特定于域的對象。 3 它摒棄了傳統的通過SQL語句來訪問數據庫的方式。其實我們通過對比Linq To SQL我們會發現他們幾乎都是一樣的。因為人的思想更習慣于使用面向對象的方式,因為它更便于理解而且也使用起來更加方便快捷。

下面就來一步步介紹如何在VS2015中添加ADO.NET實體數據模型。

圖一 ?添加ADO.NET實體數據模型

1 ?新建一個文件夾,并向這個文件夾中添加一個ADO.NET實體數據模型,例如ModelTest。

2 ?添加一個來自數據庫的EF設計器,這里有四個選項,每一個都對應一種模型內容,這里暫時不介紹,在以后的序列中在做介紹。

圖二 選擇模型內容

3 ?新建連接。

圖三 新建連接

圖四 選擇數據源

圖五 修改連接屬性

4 選擇數據庫對象,并生產對象關系映射。

圖六 選擇數據庫對象和設置

圖七 生產的特定于域的對象

下面一部分我們來看看自動生成的連接字符串。

有時候我們不僅僅需要在配置文件中配置,這樣我們就暴露了很多重要的信息,而在很多時候我們需要通過代碼來生成連接字符串,那么這該怎么做呢?因為這個配置文件還是包含很多信息的,經過我的許多努力,終于在msdn上面找到了答案。

string server = System.Configuration.ConfigurationManager.AppSettings["MySQLServer"];

if (!string.IsNullOrEmpty(server))

{

string providerName = "MySql.Data.MySqlClient";

MySqlConnectionStringBuilder sqlbulider = new MySqlConnectionStringBuilder();

sqlbulider.Server = server;

sqlbulider.UserID = "root";

sqlbulider.Password = "12345";

sqlbulider.Database = "dvap";

sqlbulider.AllowZeroDateTime = true;

sqlbulider.ConvertZeroDateTime = true;

sqlbulider.IntegratedSecurity = true;

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();

entityBuilder.Provider = providerName;

entityBuilder.ProviderConnectionString = sqlbulider.ToString();

entityBuilder.Metadata = @"res://*/EF6.DvapRegularModel.csdl|res://*/EF6.DvapRegularModel.ssdl|res://*/EF6.DvapRegularModel.msl";

m_ConnectionString = entityBuilder.ToString();

}

通過上面的方式我們能夠生成正確的連接字符串,在生成連接字符串之后我們需要將這個連接字符串傳入到自動生成的dvapEntities對象中,這里也貼出部分代碼。

namespace TestEF6.EF6

{

using System;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

public partial class dvapEntities : DbContext

{

public dvapEntities()

: base("name=dvapEntities")

{

}

protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

throw new UnintentionalCodeFirstException();

}

public virtual DbSet dvap_scene_business { get; set; }

public virtual DbSet echarts_barcharts_singleverticalcolumn { get; set; }

public virtual DbSet echarts_barcharts_singleverticalcolumnproperty { get; set; }

public virtual DbSet logs { get; set; }

public virtual DbSet options { get; set; }

public virtual DbSet test_stackhistogram { get; set; }

public virtual DbSet users { get; set; }

}

}

僅僅使用默認的?dvapEntities函數肯定達不到要求,我們需要重載一個能夠將連接字符串作為參數的構造函數,這里我們表述如下:

public dvapEntities(string connectionString)

:base(connectionString)

{

}

后面我們就可以使用這個構造函數來獲取數據庫中相應的數據了,這里我們也貼出相關的代碼來作為參考。

public string GetOptionValue(string option_name)

{

try

{

using (var db = new EF6.dvapEntities(m_ConnectionString))

{

EF6.options option = null;

option = (from x in db.options

where x.OptionName == option_name && x.UserID == 0

select x).SingleOrDefault() ?? null;

if (null != option)

{

return option.OptionValue;

}

}

return "";

}

catch (Exception ex)

{

return "";

}

}

如果想查看當前代碼示例請點擊

總結

以上是生活随笔為你收集整理的connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。