當(dāng)我們在創(chuàng)建 Service Fabric 項目后,想要利用 Entity Framework 的 CodeFrist 將數(shù)據(jù)插入數(shù)據(jù)庫時可能會遇到以下問題买猖。
問題描述
使用 Visual studio 中的 nuget 管理將 Entity Framework 引入 Service Fabric 項目后身堡,開啟 Enable-Migrations伞租,會提示 Application 項目沒有安裝 EntityFramework楼眷。
當(dāng)我們嘗試在 Application 中引入 EntityFramework 時報錯:
Install-Package : Failed to add reference. The package 'EntityFramework' tried to add a framework reference to 'System.ComponentModel.DataAnnotations' which was not found in the GAC. This is possibly a bug in the package. Please contact the package owners for assistance.
解決方法
我們以 Stateless 類型的 Service Fabric 項目為例:
1.首先要確保在執(zhí)行 Enable-Migrations 的時候,設(shè)定的 Default project 為 stateless project (如下面的例子:MyStateless ):
該 Service Fabric 項目的結(jié)構(gòu)如下:
2.保證 stateless project (例如:MyStateless) 已被設(shè)置為 Single startup Project:
3.由于 Enable-Migrations 依賴于 MyDbContext Class斤富,因此需要建立了一個 xxx.cs 的文件膏潮,在這個文件中對該類進(jìn)行定義:
4.運行 Enable-Migrations 命令時要指定 ContextTypeName 為之前 xxx.cs 文件中的 MyDbContext Class,例如:Enable-Migrations -contexttypename MileyClass.MyDbContext满力。
查看運行結(jié)果可以點擊此處焕参。