自定义连接字符串EF5,DB优先
本文关键字:DB 优先 EF5 连接 字符串 自定义 | 更新日期: 2023-09-27 18:21:07
所以我已经生成了我需要的表,并且我需要在程序启动时更改连接字符串的能力。目前我的连接是
"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(我从实体模型中生成了一些自动代码)
使用DB First,派生的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
的实例化是很有用的。
请参阅项目根目录上的Web.config。
您的连接字符串位于'connectionStrings'标记