Firebird数据库可以像SQLite一样以嵌入式模式使用吗?在 SQLite 中使用实体框架时,如果我在连接字符串(example.db)中写入数据库名称,那么当我运行它时,会在 bin 文件夹中打开一个新数据库。我可以用同样的方式使用 Firebird 吗?
或者是否有其他方法可以在不安装其服务器的情况下使用 Firebird。
是的,您可以将 Firebird Embedded 与 FirebirdSql.Data.FirebirdClient 结合使用。在连接字符串中,您必须指定
ServerType=1
(或通过代码配置时为 ServerType = FbServerType.Embedded
),并且仅指定数据库的路径(无主机名)。
但是,为了能够做到这一点,您必须在您的项目中包含 Firebird Embedded 所需的所有二进制文件您自己(或者确保在运行应用程序时它位于
PATH
上)。
也就是说,当您部署应用程序时,包含应用程序的目录必须包含
fbclient.dll
、plugins\engine13.dll
(Firebird 4.0、Firebird 3.0 为 engine12.dll
)以及所有必需的支持文件,或者包含这些文件的目录必须位于PATH
。
最简单的形式是,您可以通过从 Firebird 4.0 下载页面 下载适当位数的 Firebird 4.0 zipkit 来获取这些文件。您可以选择删除所有 .exe 和 .bat 文件、
security4.fdb
和目录 doc
、examples
、help
、include
、lib
、misc
和 system32
,尽管这仍然留下一些并非绝对必要的文件。
您可能还想阅读在 .NET 中连接到嵌入 C# 的 Firebird 3 的问题。
总之是可以的,但是不像SQLite部署那么简单。