[英]Custom connection string EF5, DB first
因此,我已經生成了所需的表,並且需要能夠在程序啟動時更改連接字符串。 目前我的聯系是
"metadata=res://*/entityframework.Model1.csdl|res://*/entityframework.Model1.ssdl
|res://*/entityframework.Model1.msl;provider=MySql.Data.MySqlClient;
provider connection string="server=localhost;User Id=myuserid;
password=12345678;database=databasename""
到目前為止我有什么
Get.designer.cs文件:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.EntityClient;
using Npgsql;
using System.Configuration;
using System.Data.Entity;
using System.Data.Entity.Validation;
using patientlist.entityframework;
using System.Xml;
namespace patientlist
{
public partial class Get : Form
{
Timer update = new Timer();//60000 = 1min
public Get()
{
InitializeComponent();
} ....
private void Timer(object sender, EventArgs e)
{
string connectionString = "metadata=res://*/entityframework.Model1.csdl|res://*/entityframework.Model1.ssdl|res://*/entityframework.Model1.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;User Id=myuserid;password=12345678;database=databasename"";
using (var blah = new ltcsystemEntities())
{
blah.Database.Connection.ConnectionString = connectionString;
} .....
我使用的是EF5,首先是數據庫(我從實體模型生成了一些自動化代碼)
使用DB First,您的派生DbContext
將作為DbContext
類自動生成。
public partial class MyContext : DbContext
{
public MyContext()
: base("name=MyContext")
{
}
//...
}
注意,它如何包含一個無參數的構造函數,該構造函數調用方法簽名的父構造函數: public DbContext(string nameOrConnectionString)
; 傳遞連接字符串的名稱。 這是應該在app.config中的連接字符串。
如果需要更改連接字符串,則可以編寫局部類以補充自動生成的類,並提供一個接受另一個app.config連接字符串或連接字符串本身名稱的構造函數,然后將其傳遞給父構造函數。
public partial class MyContext
{
public MyContext(String nameOrConnectionString)
: base(nameOrConnectionString)
{
}
}
然后你可以使用如下。
using(MyContext context = new MyContext(nameOrConnectionString))
{
//Do stuff
}
但是,如果您根據某些運行時值切換連接字符串,那么您可能會發現創建工廠類來處理DbContext
的實例化DbContext
。
在項目的根目錄中引用Web.config。
您的連接字符串位於“connectionStrings”標記內
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.