添加 Mysql 实体框架时,Visual Studio 中的表“dbname.dbname.tablename”不存在错误
Posted
技术标签:
【中文标题】添加 Mysql 实体框架时,Visual Studio 中的表“dbname.dbname.tablename”不存在错误【英文标题】:Table 'dbname.dbname.tablename' doesn't exists error in Visual Studio when adding Mysql Entity Framework 【发布时间】:2021-03-01 19:35:27 【问题描述】:我正在尝试在 Visual Studio 中添加带有实体框架的 mysql。我正在使用 MySQL Server 8.0.12 以及 8.0.12 Connector/MySql.data。 错误:MysqlException:表 'dbname.dbname.tablename' 不存在。通常我有表但 dbname 名称显示两次。
我的代码很简单,我想列出我表中的所有数据:
using (sakilaEntities db = new sakilaEntities())
var list = db.country.ToList();
我遇到了错误。
更新:卸载 MySQL Server 8.0.12 和 MySQL Connector 8.0.12,然后安装 MySQL Server&Connector 8.0.19。在您的网络配置中添加以下代码。
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
【问题讨论】:
您好,这可能与Generating wrong query on Entity Framework 6. Appending table name twice 或VS 2019 and MySQL Entity Framework duplicate database name 重复。请查看这些内容,如果您找到所需内容,请告诉我们 【参考方案1】:在生成的模型类中,删除数据库名称。所以它应该是 [Table("Table")] 而不是 [Table("Database.Table")]。示例如下:
[Table("Owners")]
public partial class Owners
public int ID get; set;
[StringLength(100)]
public string ListName get; set;
[Column("Owner", TypeName = "text")]
[StringLength(65535)]
public string Owner get; set;
[StringLength(1073741823)]
public string OwnerProperties get; set;
【讨论】:
以上是关于添加 Mysql 实体框架时,Visual Studio 中的表“dbname.dbname.tablename”不存在错误的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Visual Studio 2012/2013 的 MySQL
Visual Studio 2012 上的 mySQL 数据源