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

你的問題不明確。 – 2010-05-18 20:15:37

回答

7

發現它=)

如果使用EntityConnectionStringBuilder指定MetadataProvider,並使用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;