How can I get the value of the Namespace property from a ConceptualEntityModel at runtime?

I use C #, Visual Studio 2010, and Entity Framework 4. I have an assembly that contains several entity models. The project requirements are such that I do not store connection information in app.config.

I wrote a method that returns an entity connection string when I specify the name of the model I want to load.

public static string GetEntityConnectionString(string modelName)
{
    const string providerName = "somedatabaseprovider";
    string metadata = string.Format(@"res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", modelName);

    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder
    {
        Provider = providerName,
        ProviderConnectionString = GetProviderConnectionString(),
        Metadata = metadata
    };

    return entityBuilder.ToString();
}

, , . Visual Studio, MyModel ( ConceptualEntityModel) , "Entity Container Name", MyEntities, " ", MyModel.

, , - MyEntities. , "Namespace" ConceptualEntityModel ?

+3
2

, - "", . , modelName, , . , , .

0

, . () , :

string namespaceName = EDMInstance.Entity.EntitySet.ElementType.NamespaceName;

, "NITESMOVE_EDM", "NM_PATHS", :

// create an instance of the Data Model 
NITESMOVE_EDM EDMinst = new NITESMOVE_EDM();

// create a connection string builder
System.Data.EntityClient.EntityConnectionStringBuilder entityBuilder = new System.Data.EntityClient.EntityConnectionStringBuilder();

// Set the Metadata location, by querying an Entity in the model
entityBuilder.Metadata = string.Format(@"res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", EDMinst.NM_PATHS.EntitySet.ElementType.NamespaceName);

: MSDN EntityConnection

+2

Source: https://habr.com/ru/post/1766834/


All Articles