2015-10-30 4 views
1

Я пытаюсь прочитать данные из моей базы данных. Я создал таблицу под названием ForumSections, вот ее определение таблицы.ASP.NET - Недопустимое имя объекта 'dbo.ForumSections'

CREATE TABLE [dbo].[ForumSection] (
    [Id]   INT   IDENTITY (0, 1) NOT NULL, 
    [SectionName]  NVARCHAR (200) NOT NULL, 
    [TopicsinSection]  INT   NOT NULL, 
    [SectionDescription] NVARCHAR (MAX) NOT NULL, 
    PRIMARY KEY CLUSTERED ([Id] ASC) 
); 

Когда я пытаюсь позвонить из базы данных я получаю EntityCommandExecutionException с InnerException сообщением недопустимого имени объекта «dbo.ForumSections».

Код, используемый для вызова базы данных. Первая настройка контекст базы данных:

public class MainDbContext : DbContext 
{ 
    public MainDbContext() 
     : base("name=DefaultConnection") 
    { 
    } 
    public DbSet<ForumSection> ForumSection { get; set; } 
} 

Затем назвав его:

var db = new MainDbContext(); 
db.ForumSection.Find(0); //Error happens on this line 

Строка с индексом 0 соответствующим образом заполняется. Каковы мои варианты разрешения этого вопроса?

+0

может решить вашу проблему? –

+0

Рассмотрите, есть ли проблема подключения или проблема ORM, поскольку каждый из них может быть возможен здесь. –

ответ

1

По умолчанию EntityFramework пытается найти таблицу с множественным именем класса. Вот почему он добавляет 's' в ForumSection.

Вы можете отключить эту опцию. Это поможет вам решить вашу проблему:

Why does EF 5.x use plural name for table?

Смежные вопросы