【问题标题】:c# Entity Framework: An error occurred accessing the databasec# Entity Framework: 访问数据库时出错
【发布时间】:2018-11-24 04:21:29
【问题描述】:

我有一个使用 mysql 作为数据库的现有应用程序。它工作正常。

但是现在。我需要创建一个版本。内部和家庭为基础。

我的问题是当我在内部程序中更新功能或添加功能时,我还需要更新基于家庭的,基于家庭的使用 sqlite 数据库。

存储过程在 sqlite 中不起作用。所以决定使用实体框架。所以我可以很容易地改变数据库。我已经为我的一张表创建了模型

这包含我的应用程序的自动建议的给定名称。

这是我的课

class Given
    {
        public int id { get; set; }
        public string name { get; set; }
        public string @operator { get; set; }
        public DateTime data_time { get; set; }
    }

我是这样用的

class MyDb : DbContext
    {
        public MyDb() : base("name=sample")
        {

        }
        public DbSet<Given> tble_given { get; set; }
    }

我将其命名为 tble_given,因为它是我在数据库中的的名称

这是我在 App.config 文件中的连接字符串

<connectionStrings>

    <add name="sample" providerName="MySql.Data.MySqlClient" connectionString="server=127.0.0.1; uid=root; pwd=; database=db_sample;default command timeout=20;" />
  </connectionStrings>

这是我访问数据库中数据的代码

                using (var db = new MyDb())
                {
                    db.Database.Connection.Open();
                    Debug.WriteLine(db.Database.Connection.State);
                    foreach (var item in db.tble_given.ToList())
                    {

                    }
                }

我添加了连接打开和连接状态,以检查连接是否有效。

但是当我查询它时。

添加代码db.tble_given.ToList()

抛出异常:危地马拉 Coding.exe 中的“System.Data.Entity.Core.ProviderIncompatibleException” Guatemala Coding.exe 中出现“System.Data.Entity.Core.ProviderIncompatibleException”类型的异常,但未在用户代码中处理 访问数据库时发生错误。这通常意味着与数据库的连接失败。检查连接字符串是否正确,以及是否使用了适当的 DbContext 构造函数来指定它或在应用程序的配置文件中找到它。有关 DbContext 和连接的信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=386386。有关失败的详细信息,请参阅内部异常。

我尝试自己解决它,但我无法让这段代码工作。

如果连接状态为打开,为什么会出现此错误?

谢谢

【问题讨论】:

    标签: c# mysql entity-framework


    【解决方案1】:

    对于每个数据库,都会有一个单独的 nuget 包。在您的情况下,您的两个数据库可能都有不同的 nuget 包。所以你需要使用与你的数据库兼容的nuget包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 2017-09-20
      相关资源
      最近更新 更多