运行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中。 试试!
错误是非常具体的…它抱怨属性’名称’你的问题在这一行:
这里的名称无效,只需将其删除即可,如下所示: