我第一次嘗試EF核心,並編寫了一個非常簡單的MVC應用程序讓我的腳溼。我正在使用在UnicornStore project中找到的數據庫種子的方法,他們在Startup.cs
中編寫一些代碼來遷移數據庫,然後運行種子方法。爲什麼Visual Studio告訴我需要引用System.Private.CoreLib?
他們所謂的種子方法之前,他們跑這DbContext
擴展方法,檢查是否已應用所有遷移:
using System;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
namespace UnicornStore.Models
{
public static class DbContextExtensions
{
public static bool AllMigrationsApplied(this DbContext context)
{
var applied = context.GetService<IHistoryRepository>()
.GetAppliedMigrations()
.Select(m => m.MigrationId);
var total = context.GetService<IMigrationsAssembly>()
.Migrations
.Select(m => m.Key);
return !total.Except(applied).Any();
}
}
}
我已經把這個同樣的方法在我的應用程序,一切工作 - 代碼編譯並且數據庫被遷移並播種。但是,Visual Studio中(2017年企業)是紅色下劃線這一行:
context.GetService<IMigrationsAssembly>()
.Migrations
.Select(m => m.Key);
如果我將鼠標懸停在紅線,它告訴我:
模塊「System.Private.CoreLib,版本= 4.0 .0.0,文化=中立, 公鑰=富」應參考
誰能告訴我爲什麼我得到這個消息?我實際上試圖添加對System.Private.CoreLib
的引用來查看會發生什麼,並導致大量錯誤(未定義System.Object
等)。我永遠不會覺得這樣的事情沒有解決,如果他們以後再回來咬我,所以任何決議(或確認,我可以離開這個,並忽略消息),將不勝感激!
感謝您的支持!這似乎已經成功了! – Jim