首页 > 解决方案 > 在不使用 Scaffold DbContext 的情况下将表添加到实体

问题描述

我正在使用带有实体框架“Scaffold-DbContext”的.Net Core。我需要在不使用脚手架命令更新 ApplicationDbContext 的情况下向数据库添加一个新表。所以我做了以下步骤:

  1. 创建具有关系的类
  2. 在 ApplicationDbContext 中使用模型构建器(生成字段)
  3. 添加虚拟 DbSet

我重建了我的代码,一切正常!但是当我使用它时,它会给出:'System.Data.SqlClient.SqlException: Invalid object name'。

任何帮助将不胜感激。这是我的代码:

- - 第一部分

public class PatientDoctor
{
    public int PatientDoctorId { get; set; }
    public int ?DoctorId { get; set; }
    public int ?PatientId { get; set; }

    public Patient Patient { get; set; }
    public Doctor Doctor { get; set; }
}

- - 第二部分

modelBuilder.Entity<PatientDoctor>(entity => {
            entity.HasKey(e => e.PatientDoctorId);

            entity.HasOne(e => e.Doctor).
            WithMany(p => p.PatientDoctors).
            HasForeignKey(d => d.DoctorId).
            HasConstraintName("FK_PatientDoctor_Doctor");

            entity.HasOne(e => e.Patient).
            WithMany(p => p.PatientDoctors).
            HasForeignKey(e => e.PatientId).
            HasConstraintName("FK_PatientDoctor_Patient");
        });

---第三部分: public virtual DbSet<PatientDoctor> PatientDoctors { get; set; }

标签: c#entity-framework.net-coreasp.net-core-mvc

解决方案


我只改变了:

public virtual DbSet<PatientDoctor> PatientDoctors { get; set; }

至 :

public virtual DbSet<PatientDoctor> PatientDoctor { get; set; }

它在实体框架中缝合了一个小错误


推荐阅读