当前位置:  开发笔记 > 编程语言 > 正文

第一次迁移时实体框架代码首先是+ mysql System.NullReferenceException

如何解决《第一次迁移时实体框架代码首先是+mysqlSystem.NullReferenceException》经验,为你挑选了2个好方法。

我正在尝试使用MySQL数据库(ef代码第一种方法,VS 2013专业版).我按照这些说明操作.

我的问题是,在启用迁移后,我无法进行首次迁移.我使用命令Add-migration migrationName,我收到一个错误:

"System.NullReferenceException:对象引用未设置为对象的实例.在MySql的System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection连接)的MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection连接)处.Data.Entity.MySqlManifestTokenResolver.ResolveManifestToken(DbConnection连接)...

你调用的对象是空的.".

我试图以这种方式解决它.但现在我发现了这个:

"这可能是因为没有为您正在使用的方案指定必需参数.例如,指定连接字符串而不指定提供程序名称."

所以问题可能出在我的连接字符串中.

我有来自VS> Server Explorer的连接字符串,我的数据库有"活动"连接.我查看了连接属性并将连接字符串复制到我的web.config中.

在我的项目中引用了MySql.Data,MySql.Data.Entity.EF6和MySql.Web.

任何人有任何想法我该怎么办?



1> Thomas Hilbe..:

在新设置的EF + MySQL项目中,我至少来过两次,这在尝试启用代码优先迁移时给了我与OP完全相同的错误和堆栈跟踪。两次都花了我很长时间才能找到最终可行的解决方案。

请确保您的DbContext类具有以下属性:

[DbConfigurationType(typeof(MySqlEFConfiguration))]
class MyDbContext : DbContext
{
    // ...
}



2> Fotomen..:

我通过将连接字符串复制到我的上下文类中解决了我的问题.

public MyContextClass()
    : base("Server=myServer;Port=3306;Database=db_name;Uid=userName;Pwd=password") {}

首次迁移开始.在Update-database命令之后我有另一个问题Specified key was too long; max key length is 767 bytes,但问题System.NullReferenceException解决了.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有