DbContext在访问db时复数表名

时间:2015-09-22 10:48:47

标签: c# asp.net-mvc

我有以下控制器:

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

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

  

'无效的对象名称&#d ;.People'

上下文类是:

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

}

它试图访问实际表名的puralization,如何阻止它执行此操作并让它访问dbo.Person而不是dbo.People?

1 个答案:

答案 0 :(得分:0)

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

Transparent