Jim*_*Jim 15 visual-studio entity-framework-core asp.net-core-mvc asp.net-core
我是第一次尝试使用EF Core并编写了一个非常简单的MVC应用程序来让我的脚湿透.我正在使用一种方法来播种UnicornStore项目中的数据库,在该项目中,他们编写了一些代码Startup.cs来迁移数据库,然后运行种子方法.
在调用种子方法之前,他们运行此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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用了相同的方法,一切正常 - 代码编译,数据库被迁移和播种.但是,Visual Studio(2017 Enterprise)是红色的下划线:
context.GetService<IMigrationsAssembly>()
.Migrations
.Select(m => m.Key);
Run Code Online (Sandbox Code Playgroud)
如果我将鼠标悬停在红线上,它会告诉我:
应该引用模块'System.Private.CoreLib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = foo'
谁能告诉我为什么我收到这条消息?我实际上试图添加一个引用来System.Private.CoreLib查看会发生什么,这导致了大量的错误(未定义System.Object等).我永远不会觉得这样的事情没有得到解决,以防他们以后回来咬我,所以任何解决方案(或者我可以留下这个并且忽略这个消息的确认)将不胜感激!
| 归档时间: |
|
| 查看次数: |
4835 次 |
| 最近记录: |