繁体   English   中英

使用实体框架访问 MySQL 数据库时出现异常

Exception when accessing a MySQL database with Entity Framework

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用我的 .NET Framework Web 应用程序来处理实体框架和 MySQL 数据库

我按照本文中使用 MySql 启用实体框架的步骤进行了操作: https : //dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html

在我尝试之前,这一切看起来都是彩虹独角兽和阳光:

  1. 在包管理器控制台中enable-migrations Add-Migration后执行Add-Migration
  2. 启动网络应用程序。

我使用以下组件:

  • .NET Framework 4.5.2
  • Entity Framework 6.2.0
  • MySql.Data.Entity 6.10.8
  • MySQL database 5.7

我收到以下错误:

添加迁移错误:

System.NullReferenceException: Object reference not set to an instance of an object.
   at MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection connection)
   at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   at MySql.Data.Entity.MySqlManifestTokenResolver.ResolveManifestToken(DbConnection connection)
   at System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)
   at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
   at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
   at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   at System.Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized()
   at System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer)
   at System.Data.Entity.Utilities.DbContextExtensions.<>c__DisplayClass1.<GetModel>b__0(XmlWriter w)
   at System.Data.Entity.Utilities.DbContextExtensions.GetModel(Action`1 writeXml)
   at System.Data.Entity.Utilities.DbContextExtensions.GetModel(DbContext context)
   at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase)
   at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration)
   at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore()
   at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Object reference not set to an instance of an object.

Web 应用程序数据访问错误:

Object reference not set to an instance of an object.
   at MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection connection)
   at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   at MySql.Data.Entity.MySqlManifestTokenResolver.ResolveManifestToken(DbConnection connection)
   at System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)
   at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
   at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
   at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
   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.Include(String path)
   at System.Data.Entity.Infrastructure.DbQuery`1.Include(String path)
   at System.Data.Entity.QueryableExtensions.Include[T](IQueryable`1 source, String path)
   at System.Data.Entity.QueryableExtensions.Include[T,TProperty](IQueryable`1 source, Expression`1 path)
   at Jotihunt.Data.DataAccess.MapData.GetCars() in C:\SourceControl\BitBucket\Jotihunt\Data.DataAccess\MapData.cs:line 117
   at Jotihunt.Business.Logic.CarFacade.GetAll() in C:\SourceControl\BitBucket\Jotihunt\Business.Logic\CarFacade.cs:line 30
   at Jotihunt.Presentation.Web.Api.CarController.Get() in C:\SourceControl\BitBucket\Jotihunt\Jotihunt.Presentation.Web\Api\CarController.cs:line 21
   at lambda_method(Closure , Object , Object[] )
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
   at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)

我尝试了这个问题中的建议: Add-Migration not working with MySQL Unfortunatly that didn't work..

1 个回复

确保以下软件具有相同的版本:

MySQL Connector/NET
MySql.Data/MySql.Data.Entity/MySql.Data.EntityFrameworks

当有人像我一样用谷歌搜索这个线程时,这可能会有所帮助。

1 实体框架数据库首先在dll上出现异常行为

我有一个远程SQL Server数据库,在dll中包裹了实体框架。 当我从主应用程序引用该dll时,会得到一个运行时异常,指出“ app.settings文件中缺少连接字符串”,或者,如果手动添加连接字符串,则显示“未找到实体框架引擎”。 如果相反,我在主应用程序中从NuGet ALSO安装 ...

2 将数据插入数据库时​​出现异常错误

我只是使用PHP将表单中的数据插入到MYSQL表中,但我得到了一个不寻常的错误。我的代码是 我异常地执行else部分即使代码是sytactically正确。我已经检查并验证了所有PHP变量的值。我正在使用OOP样式PHP进行数据库连接。此外,在PHPmyadmin中执行查询也是随机使用随 ...

2014-02-18 12:11:10 3 44   php/ mysql
6 如何使用实体框架访问MySQL数据库

背景:我已经创建了一个ASP.net MVC 4应用程序和一个mysql数据库。 我使用代码优先生成数据库。 该Web App将用作与数据交互的UI。 但是,数据是在单独的C#程序中创建的。 它从串行设备获取测试数据。 问题:我不知道如何在c#应用程序中使用实体框架连接数据库。 ...

10 使用MySqlBackup.NET导出数据库时出现异常

我使用以下代码备份MYSQL数据库。 我的堆栈跟踪如下 - 但是有一个例外,并且说有一个空引用异常。 当我通过C#程序将数据传递到数据库时。 它被成功插入,没有例外。 此异常仅在我尝试通过C#程序备份数据库时发生。 我使用了上面链接中的2个Dll文件。 那些是 - M ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM