DbContext在访问db时复数化表名

本文关键字:访问 db DbContext | 更新日期: 2023-09-27 18:14:08

我有以下控制器:

private RACentralContext db = new RACentralContext();
private PeopleContext Peopledb = new PeopleContext();        
public ViewResult StartRA()
    {
        var assessor = Peopledb.People.FirstOrDefault(x => x.PersonId == 6);

        StartRiskAssessmentViewModel viewModel = new StartRiskAssessmentViewModel
        {
            RiskAssessment = new RiskAssessment(),
        };
        return View(viewModel);
    }

当我运行应用程序时,它给出以下错误:

'无效的对象名称'dbo。人'

上下文类是:

public class RACentralContext : DbContext
{
    public RACentralContext()
        : base("name=RACDev")
    {
    }
    public DbSet<RiskAssessment> RiskAssessments { get; set; }
    public DbSet<Hazard> Hazards { get; set; }
    public DbSet<PPE> PPEs { get; set; }
    public DbSet<RiskAssessmentPPE> RiskAssessmentPPEs { get; set; }
    public DbSet<PeopleExposed> PeopleExposeds { get; set; }
    public DbSet<RiskAssessmentPeopleExposed> RiskAssessmentPeopleExposeds { get; set; }
    public DbSet<RiskAssessmentHazard> RiskAssessmentHazards { get; set; }
    public DbSet<ControlMeasure> ControlMeasures { get; set; }
    public DbSet<Severity> Severitys { get; set; }
    public DbSet<Likelihood> Likelihoods { get; set; }
    public DbSet<AddControlMeasure> AddControlMeasures { get; set; }
    public DbSet<Type> Types { get; set; }
    public DbSet<SubType> SubTypes { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
}
public class PeopleContext : DbContext
{
    public PeopleContext()
        : base("name=PeopleContext")
    {
    }
    public DbSet<Person> People { get; set; }
}

它试图访问实际表名的纯化,我如何阻止它这样做,并让它访问dbo。人不是鬼,人?

DbContext在访问db时复数化表名

我们在模型本身上指定表名

[Table("Person")]
public class Person { ... }