Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ObjectContext ConnectionString Sqlite

I need to connect to a database in Sqlite so i downloaded and installed System.Data.SQLite and with the designer dragged all my tables.

The designer created a .cs file with

public class Entities : ObjectContext

and 3 constructors:

1st

public Entities() : base("name=Entities", "Entities")

this one load the connection string from App.config and works fine.

App.config

<connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/Db.TracModel.csdl|res://*/Db.TracModel.ssdl|res://*/Db.TracModel.msl;provider=System.Data.SQLite;provider connection string=&quot;data source=C:\Users\Filipe\Desktop\trac.db&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

2nd

public Entities(string connectionString) : base(connectionString, "Entities")

3rd

public Entities(EntityConnection connection) : base(connection, "Entities")

Here is the problem, i already tried n configuration, already used EntityConnectionStringBuilder to make the connection string with no luck.

Can you please point me in the right direction!?

EDIT(1)

I can do my queries if i use de parameterless constructor but i need to change the connection string, i can't use the one in my app.config.

How can i construct a valid connection string?!

like image 743
codegarten Avatar asked May 18 '10 20:05

codegarten


1 Answers

Found it =)

if you use the EntityConnectionStringBuilder to specify the Metadataand the Provider and use the SqlConnectionStringBuilderto build the provider connection string and set the DataSource to your DB. You can connect =)

var con = new EntityConnectionStringBuilder()
  {
    Metadata = @"res://*/Db.TracModel.csdl|res://*/Db.TracModel.ssdl|res://*/Db.TracModel.msl",
    Provider = @"System.Data.SQLite",
    ProviderConnectionString = new SqlConnectionStringBuilder()
      {
        DataSource = db,
      }.ConnectionString,
  };

connection = con.ConnectionString;
like image 84
codegarten Avatar answered Sep 30 '22 16:09

codegarten