[英]Entity framework code first + mysql System.NullReferenceException at first migration
我正在嘗試使用MySQL數據庫(EF代碼優先方法,VS 2013 Professional)。 我遵循這些指示 。
我的問題是,啟用遷移后,我無法進行第一次遷移。 我使用命令Add-migration migrationName,但出現錯誤:
“ System.NullReferenceException:對象引用未設置為對象的實例。MySql.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection連接)處的MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection連接)處.Data.Entity.MySqlManifestTokenResolver.ResolveManifestToken(DbConnection連接)...
你調用的對象是空的。”。
“這可能是由於未為正在使用的方案指定必需的參數引起的。例如,指定連接字符串而不指定提供程序名稱。”
所以問題可能出在我的連接字符串中。
我從“ VS”>“服務器資源管理器”中獲得了連接字符串,與我的數據庫存在“活動”連接。 我查看了連接屬性,並將連接字符串復制到了web.config中。
在我的項目中,引用了MySql.Data,MySql.Data.Entity.EF6和MySql.Web。
任何人有任何想法我該怎么辦?
在新設置的EF + MySQL項目中,我至少來過兩次,這在嘗試啟用代碼優先遷移時給了我與OP完全相同的錯誤和堆棧跟蹤。 兩次都花了我很長時間才能找到最終可行的解決方案。
請確保您的DbContext類具有以下屬性:
[DbConfigurationType(typeof(MySqlEFConfiguration))]
class MyDbContext : DbContext
{
// ...
}
我通過將連接字符串復制到上下文類中解決了我的問題。
public MyContextClass()
: base("Server=myServer;Port=3306;Database=db_name;Uid=userName;Pwd=password") {}
首次遷移開始。 在執行更新數據庫命令后,我還有另一個問題。 Specified key was too long; max key length is 767 bytes
Specified key was too long; max key length is 767 bytes
,但System.NullReferenceException
的問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.