Click here to Skip to main content
12,955,118 members (69,147 online)
Rate this:
 
Please Sign up or sign in to vote.
Hi all
i make an entity framework for a database (sql) and another one for Oracle using third party. but to the same db schema and all my changing in the SSDL.schema and adding a new connection string in Web.config
and the entity.design.cs shared for both database (100% success when i change the connection string by hand in the code ). all what i need to change the connection in this file in the run time . is there a way to make it ?

example for my code in entity.designer.cs

public partial class entity: ObjectContext
   {
       public entity() : base(name=connetionstring, context)
       {
           this.ContextOptions.LazyLoadingEnabled = true;
           OnContextCreated();
       }
 
    }

i need to change the under line text in my run time
Posted 13-May-10 13:27pm
Updated 6-Dec-11 17:34pm
v3
Comments
Henry Minute 13-May-10 19:34pm
   
I added pre tags. changed nothing else.
Eduard Lu 6-Dec-11 23:34pm
   
EDIT: added code blocks
mjbohn 8-Dec-11 11:04am
   
That's quite an old post from 14.05.2010 :-)
How did it pop up again?
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

There should be three constructors for the ObjectContext class

public Entities() : 
        base("name=Entities", "Entities")
{
    this.OnContextCreated();
}
 
public Entities(string connectionString) : 
        base(connectionString, "Entities")
{
    this.OnContextCreated();
}
 
public Entities(global::System.Data.EntityClient.EntityConnection connection) : 
        base(connection, "Entities")
{
    this.OnContextCreated();
}


Pass in the connection string or create an EntityConnection object

private static EntityConnection GetConnection()
{
    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
    entityBuilder.ProviderConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
    entityBuilder.Provider = "System.Data.SqlClient";
    entityBuilder.Metadata = @"res://*/xxx.csdl|res://*/xxx.ssdl|res://*/xxx.msl";
 
    return new EntityConnection(entityBuilder.ToString());
}
  Permalink  
v2
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

Hi,

You can get hold of the EntityConnection by ObjectContext instance.

ObjectContextInstance.Connection - and then type cast this to EntityConnection.

Then To this instance of EntityConnection, Get the storeConnection

EntityConnectionInstance.StoreConnection - this gives you the underlying connection string.

I hope this helps!.

Regards,
-Vinayak
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 6,559
CHill60 3,550
Maciej Los 3,153
ppolymorphe 2,030
Jochen Arndt 1,975


Advertise | Privacy | Mobile
Web02 | 2.8.170525.1 | Last Updated 6 Dec 2011
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100