在不使用Scaffold DbContext的情况下向实体添加表

时间:2019-04-16 08:25:37

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

我正在将.Net Core与实体框架'Scaffold-DbContext'一起使用。 我需要在不使用scaffold命令更新ApplicationDbContext的情况下向数据库添加新表。 因此,我执行了以下步骤:

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

我重新构建代码,一切正常! 但是当我使用它时,它给出了:'System.Data.SqlClient.SqlException:无效的对象名称'。

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

----第一部分

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; }

1 个答案:

答案 0 :(得分:0)

我只是更改了:

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

收件人:

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

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