5

我需要连接到 Sqlite 中的数据库,所以我下载并安装了System.Data.SQLite并与设计器一起拖动了我所有的表。

设计师创建了一个 .cs 文件

public class Entities : ObjectContext

和 3 个构造函数

第一

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

这个从 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 来创建连接字符串,但没有成功。

你能指出我正确的方向吗!?

编辑(1)

如果我使用无参数构造函数,我可以进行查询,但我需要更改连接字符串,我不能在我的 app.config 中使用那个。

我怎样才能构造一个有效的连接字符串?!

4

1 回答 1

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;
于 2010-05-19T09:28:57.663 回答