ObjectContext ConnectionString Sqlite - PullRequest
5 голосов
/ 19 мая 2010

Мне нужно подключиться к базе данных в Sqlite, поэтому я скачал и установил System.Data.SQLite и дизайнер перетянул все мои таблицы.

Дизайнер создал файл .cs с

public class Entities : ObjectContext

и 3 конструкторы :

первый

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

этот загружает строку подключения из App.config и работает нормально.

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>

2-й

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

третий

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

Вот проблема , я уже попробовал n конфигурацию, уже использовал EntityConnectionStringBuilder для создания строки подключения без удачи.

Не могли бы вы указать мне правильное направление!?

РЕД (1)

Я могу выполнять свои запросы, если я использую конструктор без параметров, но мне нужно изменить строку подключения, я не могу использовать строку в моем app.config.

Как мне создать правильную строку подключения?!

1 Ответ

7 голосов
/ 19 мая 2010

Нашел это =)

, если вы используете EntityConnectionStringBuilder для указания Metadata и Provider, а SqlConnectionStringBuilder для построения строки подключения провайдера и установки DataSource для вашей БД. Вы можете подключиться =)

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;
...