This project has moved and is read-only. For the latest updates, please go here.

How to write plugin config for database connections?

Aug 26, 2012 at 8:34 PM

I am developing an new hydrodesktop plugin, and I am using sqlite for my data storage. Then I got the problem that the database connection did not work. And I guess the problem may come from the app.config file, because I noticed that there are some difference in scheme between my auto-generated config and those in the origin plugins.

Next is the auto-generated config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="EarlyWarningSettingsEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;D:\SOFTWARE\Dotspatial\HydroDesktop 6.28\HydroDesktop 6.28\EarlyWarningSettings&quot;'" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

So, how can I modify the file to make the connection works?

Aug 28, 2012 at 4:50 PM

 

Hello,

We are in the midst of a transition period for the HydroDesktop development team. Someone will answer your questions as soon as possible. Thank you for your patience and sorry for any inconvenience. 

Aug 28, 2012 at 5:49 PM

Can you give some more information about your project? Does the plugin load at all? - Dan

Aug 29, 2012 at 6:02 AM

Hi,

It looks that you are using Entity Framework to work with your local database, is it? Can you show what error you got? It may be whatever...

Aug 30, 2012 at 6:08 AM

Well, thank you.

This is the error message I got.

"The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid."

Aug 30, 2012 at 8:16 AM
Edited Aug 30, 2012 at 8:18 AM

When you create your ObjectContext (EarlyWarningSettingsEntities) you should use code like this:

var configPath = GetType().Assembly.Location;
var config = ConfigurationManager.OpenExeConfiguration(configPath);
var connectionString = config.ConnectionStrings.ConnectionStrings["EarlyWarningSettingsEntities"];
            
var container = new EarlyWarningSettingsEntities(connectionString.ConnectionString);
// Work with container....

In this case your plugin will read connection string from app.config for your plugin.

Sep 17, 2012 at 2:20 PM

Well, thank you very much.