运行linq命令时无法识别属性“name”错误

我在我的APS.NET 4.5 Web应用程序中使用Entity Framework 6。

运行以下命令时:

using (var db = new booksEnteties()) { var books = from b in db.books select b; } 

我收到以下错误:

System.Configuration.dll中发生类型为“System.Configuration.ConfigurationErrorsException”的exception,但未在用户代码中处理

在细节中:

无法识别的属性“名称”。

它指向我的web.config行111:

   

当我删除此行并尝试再次运行时,我收到以下错误:

为system.data创建配置节处理程序时发生错误:列’InvariantName’被限制为唯一。 值’MySql.Data.MySqlClient’已存在。

我假设这与web.config中的Entity Framework 6配置有关。

正如Tim Tang所说,如果您使用的是Entity Framework 6,则需要使用Connector / NET 6.8.x. 您还应该向项目添加对MySql.Data.Entity.EF6的引用。

在此处输入图像描述

然后为您的Web.config文件,如下所示:

             

看看这个更多细节。

只需添加版本摘要

  • 对于EF4,使用Connector / NET 6.6.x(当前GA为6.6.6)
  • 对于EF5,使用Connector / NET 6.7.x(当前GA为6.7.4)或Connector / NET 6.8.x(当前GA为6.8.3)。
  • 对于EF6,使用Connector / NET 6.8.x(当前GA为6.8.3)。

在EF5或更低,一切都好。 在EF6中,您需要使用mysql连接器6.8.x,并将DbConfigurationTypeAttribute添加到DbContext:

 [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] public class DemoContext : DbContext{} 

哪个MySqlEFConfiguration在6.8.x中的MySql.Data.Entity.EF6.dll中。 试试!

错误是非常具体的…它抱怨属性’名称’你的问题在这一行:

  

这里的名称无效,只需将其删除即可,如下所示: