c# - 在不使用 Scaffold DbContext 的情况下将表添加到实体
问题描述
我正在使用带有实体框架“Scaffold-DbContext”的.Net Core。我需要在不使用脚手架命令更新 ApplicationDbContext 的情况下向数据库添加一个新表。所以我做了以下步骤:
- 创建具有关系的类
- 在 ApplicationDbContext 中使用模型构建器(生成字段)
- 添加虚拟 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; }
解决方案
我只改变了:
public virtual DbSet<PatientDoctor> PatientDoctors { get; set; }
至 :
public virtual DbSet<PatientDoctor> PatientDoctor { get; set; }
它在实体框架中缝合了一个小错误
推荐阅读
- c++ - 可以从具有相同名称的派生类函数调用基类函数。但我找不到支持这一点的标准报价
- css - PrimeVue 菜单栏
- javascript - 发送 Base 64 字符串作为请求参数
- jquery - 如何使用 jQuery 连接按钮单击功能以移动幻灯片?
- azure - Azure ServiceBus 可以提前多长时间安排消息
- mysql - 如何比较列值以查看该值是否相同,除了该值的结尾
- javascript - 如何将日期(在一段时间内随机生成)格式化为 DD/MM/YYYY
- c++ - 访问 MultiDim 数组会给出 Seg Fault C++
- android - Android 布局组织
- mysql - Group by with 子句 a key 不相等