本文介绍了ConfigurationErrorException试图运行控制台应用程序与MySQL Entity Framework 6的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想学习如何使用实体框架6与MySQL。因为我已经有一个现有的数据库,我下面的模型第一种方法。但是,我总是面临着是隐约有帮助此错误消息

I am trying to learn how to use Entity Framework 6 with MySQL. Since I already have an existing database, I am following the Model First approach. However, I am always faced with this error message that is vaguely helpful.

错误在Program.cs的这行代码触发:

The error triggers in this line of code in Program.cs:

List<Student> students = dbContext.Students.ToList();



错误消息只是说:

The error message just says:

键入'System.Configuration.ConfigurationErrorsException'发生在System.Configuration.dll其他信息未处理的异常:无法识别的属性名称

我的第一个假设是,有什么问题我的App.config文件。但是,我不知道哪个名称属性在App.config文件,它在说什么。我试图寻找现有的答案或可能的解决方案没有效果,所以我决定后我的问题,希望你们帮我。

My first assumption is that there is something wrong with my App.config file. However, I don't know which name attribute in the App.config file it was talking about. I tried searching for existing answers or possible solutions to no avail so I decided to post my problem hoping for you guys to help me.

我用的是什么:


  • 的Visual Studio 2013 Jun 2013(在我的电脑安装)

  • MySQL服务器5.6(在我的电脑安装)

  • 实体框架6.1.1(通过的NuGet包管理器安装在我的项目)

  • MySql.ConnectorNET。数据6.8.3.2(通过的NuGet包管理器安装在我的项目)

  • MySql.ConnectorNet.Entity 6.8.3.2(通过的NuGet包管理器安装在我的项目)

  • Visual Studio 2013 (Installed in my PC)
  • MySQL Server 5.6 (Installed in my PC)
  • Entity Framework 6.1.1 (Installed in my project through NuGet Package Manager)
  • MySql.ConnectorNET.Data 6.8.3.2 (Installed in my project through NuGet Package Manager)
  • MySql.ConnectorNet.Entity 6.8.3.2 (Installed in my project through NuGet Package Manager)

我做了什么步骤:


  1. 创建一个新的控制台应用程序

  2. 已安装的实体框架,MySql.ConnectorNET.Data和MySql.ConnectorNet.Entity到通过的NuGet包管理器
  3. $ b $项目b
  4. 新增了一个名为ADO.Net实体数据模型 DSWS_Model 使用我现有的数据库

  5. 进入一些简单的代码,进行迭代,并且打印学生名单到控制台

  6. 运行

  7. 再笨的运行时错误显示出来

  1. Created a new console app
  2. Installed Entity Framework, MySql.ConnectorNET.Data, and MySql.ConnectorNet.Entity into the project through NuGet Package Manager
  3. Added an ADO.Net Entity Data Model named DSWS_Model using my existing database
  4. Entered some simple code that iterates and prints the list of students into the console
  5. RUN
  6. Then stupid runtime error shows up

Program.cs的


Program.cs

namespace MySQLEntityFramework6
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Start?");
            Console.ReadLine();
            try
            {
                using (dswsEntities dbContext = new dswsEntities())
                {
                    List<Student> students = dbContext.Students.ToList();
                    foreach (Student student in students)
                    {
                        Console.WriteLine(student.name);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionUtility.LogException(ex);
            }
            Console.ReadLine();
        }
    }
}






DSWS_Model.Context.cs


DSWS_Model.Context.cs

namespace MySQLEntityFramework6
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class dswsEntities : DbContext
    {
        public dswsEntities()
            : base("name=dswsEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<Administrator> Administrators { get; set; }
        public virtual DbSet<BuildingSetting> BuildingSettings { get; set; }
        public virtual DbSet<Evaluation> Evaluations { get; set; }
        public virtual DbSet<LockerReservation> LockerReservations { get; set; }
        public virtual DbSet<Locker> Lockers { get; set; }
        public virtual DbSet<LoginQueue> LoginQueues { get; set; }
        public virtual DbSet<Student> Students { get; set; }
    }
}






App.config中


App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="dswsEntities" connectionString="metadata=res://*/DSWS_Model.csdl|res://*/DSWS_Model.ssdl|res://*/DSWS_Model.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=root;persistsecurityinfo=True;database=dsws&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>






错误日志


Error Log

    Exception Type: System.Configuration.ConfigurationErrorsException
Exception: Unrecognized attribute 'name'. (C:\Users\Nico\Documents\Visual Studio 2013\Projects\MVA\Entity Framework\MySQLEntityFramework6\MySQLEntityFramework6\bin\Debug\MySQLEntityFramework6.vshost.exe.Config line 23)
Source: System.Configuration
Stack Trace: 
   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Data.Common.DbProviderFactories.Initialize()
   at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
   at System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver.GetService(Type type, Object key, Func`3 handleFailedLookup)
   at System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.CachingDependencyResolver.<>c__DisplayClass1.<GetService>b__0(Tuple`2 k)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at System.Data.Entity.Infrastructure.DependencyResolution.CachingDependencyResolver.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.<>c__DisplayClass3.<GetService>b__0(IDbDependencyResolver r)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.RootDependencyResolver.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.<>c__DisplayClass3.<GetService>b__0(IDbDependencyResolver r)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.CompositeResolver`2.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.DbDependencyResolverExtensions.GetService[T](IDbDependencyResolver resolver, Object key)
   at System.Data.Entity.Core.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
   at System.Data.Entity.Core.EntityClient.EntityConnection..ctor(String connectionString)
   at System.Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection)
   at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config)
   at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
   at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()
   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   at System.Data.Entity.Internal.InternalContext.Initialize()
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
   at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at MySQLEntityFramework6.Program.Main(String[] args) in c:\Users\Nico\Documents\Visual Studio 2013\Projects\MVA\Entity Framework\MySQLEntityFramework6\MySQLEntityFramework6\Program.cs:line 19
Target Site: System.Object EvaluateOne(System.String[], System.Configuration.SectionInput, Boolean, System.Configuration.FactoryRecord, System.Configuration.SectionRecord, System.Object)






感谢您提前为那些谁就会回复。


Thank you in advance for those who will reply.

推荐答案

从你的堆栈跟踪它会出现,它的抱怨在您的配置文件DbProviderFactory要素之一name属性。您不必删除元素指定名字,只是不变。请尝试删除它,事情应该开始工作!

From your stack trace it would appear that it's complaining about the 'name' attribute on one of the DbProviderFactory elements in your configuration file. You don't need to specify name on the remove element, just invariant. Try removing it and things should start working!

这篇关于ConfigurationErrorException试图运行控制台应用程序与MySQL Entity Framework 6的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 23:27