给定以下连接字符串:
<add name="PrimaryDBConnectionString" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=10.1.1.101;Initial Catalog=primary;Persist Security Info=True;User ID=myuserid;Password=mypassword;MultipleActiveResultSets=True;Application Name=EntityFramework"" />
我尝试使用以下内容在我的 DAL 中打开连接:
using (PrimaryDBContext ctx = new PrimaryDBContext(ConfigurationManager.ConnectionStrings["PrimaryDBConnectionString"].ToString()))
{
try
{
ctx.Connection.Open();
var result = ctx.sq_newsfeed_GetProfileByID(profileID);
我得到的错误是:
基础提供程序在打开时失败
我弄乱了 EF 连接字符串,并用“metadata=res://*/;”替换了所有提供程序前缀的东西 但还是不行。
任何人都可以对此有所了解吗?
谢谢。
- 更新 -
感谢您的回复...我最终只是从 UI 创建了一个新的数据库连接并修改了连接字符串以满足我的需求:
<add name="PrimaryEntities" connectionString="metadata=res://*/PrimaryModel1.csdl|res://*/PrimaryModel1.ssdl|res://*/PrimaryModel1.msl;provider=System.Data.SqlClient;provider connection string="data source=10.99.108.42;initial catalog=primary;user id=dbuserID;password=somepw;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我保留了元数据部分。诀窍是确保您的 .csdl、.ssdl 和 .msl 文件名前缀与您的数据库上下文相匹配。