2015-09-22 69 views
0

複數化表名,我有以下控制器:的DbContext在訪問DB

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

當我運行它提供了以下錯誤的應用程序:

'Invalid object name 'dbo.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?

+0

表名添加一個'覆蓋無效OnModelCreating()''來... PeopleContext' – CodeCaster

+0

Hvaing補充說,我得到這個錯誤:該模型支持的「PeopleContext自數據庫創建以來,上下文已發生變化。考慮使用Code First Migrations來更新數據庫(http://go.microsoft.com/fwlink/?LinkId=238269)。儘管運行update-database-force。 People上下文只有一個來自該數據庫的表,而不是我在另一個應用程序中使用的所有表 –

回答

0

我們指定的模型本身

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

現在出現此錯誤:自創建數據庫以來,支持'PeopleContext'上下文的模型已更改。考慮使用代碼優先遷移來更新數據庫 –

+0

您需要在模型中執行遷移時執行遷移。看看這個http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an -asp-net-mvc-application – Ruchan

+0

您可能需要指定上下文 - 嘗試使用標誌-ConfigurationTypeName – Matt