【问题标题】:SubSonic, SQLite and Unable to find Data Provider?SubSonic、SQLite 和无法找到数据提供者?
【发布时间】:2009-12-23 03:23:40
【问题描述】:

我开始使用 SubSonic。我想将我的数据库更改为 sqlite,我的配置文件中有这个

  <connectionStrings>
      <add name="NorthwindSQLite"
       connectionString="Data Source=C:\unzipped\WindowsFormsApplication1\my.db"
       providerName="System.Data.SQLite"/>
  </connectionStrings>

我得到了异常

A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll

Additional information: Unable to find the requested .Net Framework Data Provider.  It may not be installed.

我在参考部分中有 SQLite 参考。那么我该如何解决这个问题呢?

【问题讨论】:

    标签: sqlite subsonic dataprovider


    【解决方案1】:

    如果您使用的是 Visual Studio,请尝试在服务器资源管理器中使用 System.Data.SQLite 创建数据库连接。如果 System.Data.SQLite 提供程序不在提供程序列表中,则安装或重新安装它。然后检查您是否可以在 Visual Studio 中打开和查看表数据。如果这有效,亚音速 2.2 应该能够使用 sqlite 文件。我在 subsonic 的 github 存储库中为 sqlite 使用了一个更新的 subsonic 数据提供程序,它似乎对我来说工作得更好一些。但是,它不会生成多对多代码。

    在已部署的应用程序中,您不必单独安装提供程序。

    【讨论】:

    • 我从来没有意识到我需要单独安装一个提供程序。不知何故,我认为添加引用会使项目将其用作提供者(或其他东西......)。问题解决了,我的所有代码都能正常工作。
    • 既然编译了但在运行时引发了异常,这是否意味着必须在生产环境中“安装”SQLite提供程序?我认为“无需安装”是 SQLite 的好处之一。
    • 从 SQLite readme.txt 文件和stackoverflow.com/questions/1117683/…,我发现你可以在配置文件中添加 DbProviderFactories。
    【解决方案2】:

    哪个版本的亚音速?

    我的 sqlite 工作提供程序部分如下所示:

    <add name="Local" type="SubSonic.SQLiteDataProvider, SubSonic" connectionStringName="MyConn" generatedNamespace="X.Data" stripTableText="tbl" />
    

    我的连接字符串看起来像

    <add name="MyConn" connectionString="Data Source=C:\data.db;Version=3;"/>
    

    希望这会有所帮助:-)

    【讨论】:

    • 忘记为亚音速 2.0 添加它 - 我还没有使用带有亚音速 3 的 sqlite
    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2014-10-31
    • 2018-12-21
    • 2016-02-14
    • 1970-01-01
    相关资源
    最近更新 更多