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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

在開始介紹之前,首先來看看官方對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.這里面涉及到幾個關(guān)鍵的知識點(diǎn):1 首先它是一個對象關(guān)系映射。2 其次它使用的是特定于域的對象。 3 它摒棄了傳統(tǒng)的通過SQL語句來訪問數(shù)據(jù)庫的方式。其實(shí)我們通過對比Linq To SQL我們會發(fā)現(xiàn)他們幾乎都是一樣的。因為人的思想更習(xí)慣于使用面向?qū)ο蟮姆绞?#xff0c;因為它更便于理解而且也使用起來更加方便快捷。

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

圖一 ?添加ADO.NET實(shí)體數(shù)據(jù)模型

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

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

圖二 選擇模型內(nèi)容

3 ?新建連接。

圖三 新建連接

圖四 選擇數(shù)據(jù)源

圖五 修改連接屬性

4 選擇數(shù)據(jù)庫對象,并生產(chǎn)對象關(guān)系映射。

圖六 選擇數(shù)據(jù)庫對象和設(shè)置

圖七 生產(chǎn)的特定于域的對象

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

有時候我們不僅僅需要在配置文件中配置,這樣我們就暴露了很多重要的信息,而在很多時候我們需要通過代碼來生成連接字符串,那么這該怎么做呢?因為這個配置文件還是包含很多信息的,經(jīng)過我的許多努力,終于在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; }

}

}

僅僅使用默認(rèn)的?dvapEntities函數(shù)肯定達(dá)不到要求,我們需要重載一個能夠?qū)⑦B接字符串作為參數(shù)的構(gòu)造函數(shù),這里我們表述如下:

public dvapEntities(string connectionString)

:base(connectionString)

{

}

后面我們就可以使用這個構(gòu)造函數(shù)來獲取數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)了,這里我們也貼出相關(guān)的代碼來作為參考。

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 "";

}

}

如果想查看當(dāng)前代碼示例請點(diǎn)擊

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。