Get the connection string for Entity Framework using the POCO template
I use Entity Framework and I need to get my connection string so I can construct a context.
I am using the POCO template. My context object has:
string ConnectionString = "name=MyAppConfigConnectionStringPropertyHere"
So when I try to just construct my context it says
"The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid"
I saw in this answer that indicated that there is a GetConnectionString() method. But googling has not lead me to the reference I need to add to get that method (it is not in my project by default).
So, I can't think that I am the first one who 开发者_C百科wants to get a connection string for entity framework using the POCO templates. How have others done this? I guess I can just read in the whole app.config file and parse it out. But it seems like it should not be that hard.
Any hints would be great!
For entity framework 6.0, following code gives current ConnectionString.
context.Database.Connection.ConnectionString
For people not using EF 4.1 here is the easiest way to do it that I know of:
using System.Data.EntityClient;
public static string GetConnectionString(ObjectContext context)
{
return ((EntityConnection)context.Connection).StoreConnection.ConnectionString;
}
I get the DB connection like this
var connection = (SqlConnection)_context.Database.Connection;
Then from connection you get the ConnectionString
and other info you need
For EF Core, use:
context.Database.GetDbConnection().ConnectionString;
There must be a connectionString-element present in the web.config that the specified name used on the context:
<configuration>
<connectionStrings>
<add name="MyAppConfigConnectionStringPropertyHere"
providerName="System.Data.SqlClient"
connectionString="Data Source...." />
</connectionStrings>
</configuration>
精彩评论