为了账号安全,请及时绑定邮箱和手机立即绑定

执行代码优先迁移时无法在 Visual Studio 2017 中加载文件或程序集

执行代码优先迁移时无法在 Visual Studio 2017 中加载文件或程序集

C#
哆啦的时光机 2021-09-19 16:01:11
在这里,我尝试在 VS 2017 中开发 .NetFrameworkCore 项目。我有一个包含两个项目的解决方案类库ASP .net 核心应用程序我想创建可以使用enable-migrations和的迁移add-migration InitialCreate。在此之前,我在 startUp.cs 中配置了我的项目,如下所示:  public void ConfigureServices(IServiceCollection services)    {        // Add framework services.        services.AddMvc();        //======================================Setting ConnectionString to Database        services.AddDbContext<EfDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DbCon")));        //services.AddCors();        //======================API Level and Function Level        services.AddCors(action => action.AddPolicy("PolicyName", //============Adding Policy which was Created in the api             builder => builder.WithOrigins("http://localhost:4200") //Adding access the URL for giving access to the URL(s)            .WithMethods("Get", "Post", "Put", "Delete")// Adding access to the method(s) for the request from the 'URL'            .AllowAnyHeader()));//Adding access to any headers from the 'URL'    }这绝对没问题。我喜欢这样的 EfDbContext:    public EfDbContext(DbContextOptions options) : base(options)    {    }    public DbSet<utblPhoto> utblPhotos { get; set; }    protected override void OnModelCreating(ModelBuilder modelBuilder)    {        EfConfiguration(modelBuilder);    }    private static void EfConfiguration(ModelBuilder modelBuilder)    {       //**************************************Table Mapping        modelBuilder.Entity<utblPhoto>().ToTable("utblPhoto");    }对于我使用过的关键注释System.ComponentModel.DataAnnotations这是因为我还没有找到System.Data.Entity.Core. 编译解决方案工作正常,但在创建迁移时我有错误说明Could not load file or assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.我想,有两种可能我正在使用 ASP.net 核心应用程序,其中我有 ClassLibrary 项目,因此我遇到了上述错误迁移时,它正在搜索System.Data.Entity.CoreEF6我应该如何使用Code First Migrations.
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您的代码中似乎没有任何问题。我建议您使用 EF 6 中的 Fluent API 配置在EfConfiguration. 试试这个。


private static void EfConfiguration(ModelBuilder modelBuilder)

{

   modelBuilder.Entity<utblPhoto>().ToTable("utblPhoto");

   modelBuilder.Entity<utblPhoto>().HasKey(t=> new {t.PhotoId});

}

完整指南可在此处找到。希望这对你有帮助。


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信