我尝试使用Rider
进行任何类型的迁移。我尝试使用控制台,因为Rider无法检测到模型的上下文。
<package id="Microsoft.EntityFrameworkCore.Sqlite" version="2.2.2" targetFramework="net472" />
<package id="Microsoft.EntityFrameworkCore.Sqlite.Core" version="2.2.2" targetFramework="net472" />
<package id="Microsoft.EntityFrameworkCore.Sqlite.Design" version="1.1.6" targetFramework="net472" />
<package id="Microsoft.EntityFrameworkCore.Tools" version="2.2.2" targetFramework="net472" developmentDependency="true" />
using System.Collections.Generic;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
namespace WebApplication1.Models
{
public class Data : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=db.db");
}
}
我在VS中打开了项目,可以轻松地迁移和更新数据库。
当我尝试在Rider
的终端上调用任何命令时,会发生问题。
尝试过dotnet ef add
,dotnet ef migrations add AddProductReviews
,dotnet ef list
。
每次尝试都会以错误结束。
D:\ riderproject \ WebApplication1 \ WebApplication1 \ obj \ WebApplication1.csproj.EntityFrameworkCore.targets(4,5):错误MSB4006:目标依赖关系图中涉及目标“ GetEFProjectMetadata”的循环依赖关系。 [D:\ rider project \ WebApplication1 \ Web Application1 \ WebApplication1.csproj] 无法检索项目元数据。确保这是一个基于MSBuild的.NET Core项目。如果您使用的是自定义BaseIntermediateOutputPath或MSBuildProjectExtensionsPath值,请使用--msbuildprojectextensionspath选项。
令我感到惊讶的是,我可以轻松地通过Visual Studio
进行迁移,而不是通过Rider
中的控制台进行迁移。
答案 0 :(得分:0)
解决问题的方法是转到项目所在的文件夹,然后从那里调用命令。