5

Мне нужно подключиться к базе данных в Sqlite, поэтому я загрузил и установил System.Data.SQLite и с дизайнером перетащил все мои таблицы.ObjectContext ConnectionString 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> 

второй

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

третьего

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

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

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

EDIT (1)

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

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

+1

ваш вопрос не ясен. –

ответ

7

Нашел =)

, если вы используете 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;