EntityFramework, используя неверное имя таблицы - PullRequest
9 голосов
/ 19 июня 2011

Мой код выдает мне исключение EntityCommandExecutionException, когда я пытаюсь получить данные из моей таблицы Bieren.

В сообщении об исключении говорится, что он не может найти "dbo.Biers", что вполне очевидно, поскольку он называется"dbo.Bieren".

Я могу довольно легко это исправить, просто переименовав таблицу в базе данных.Хотя мне не нравится исправлять мою базу данных из-за ошибок в моем коде.

Как я могу заставить каркас сущностей использовать правильную таблицу вместо изменения имени моей таблицы?

Заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 19 июня 2011

Для подхода, основанного на базе данных, решение StriplingWarrior работает хорошо. Но если вы используете подход, основанный на коде, вы можете использовать System.ComponentModel.DataAnnotations.TableAttribute в классе целевого объекта, чтобы отобразить класс объекта в таблицу базы данных.

Однако этот способ немного раздражает, потому что мы обычно хотим определить чистый класс сущностей. Для этого вы можете доверить его другому классу или использовать переопределенный метод OnModelCreating в классе DbContext следующим образом.

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Category>()
        .ToTable("MyCategories");
    }
7 голосов
/ 25 августа 2011

Украсьте свой класс сущности свойством TableAttribute, например,

[Table("Bieren")]
5 голосов
/ 19 июня 2011

Ваша модель Entity Framework содержит информацию об именах таблиц и соединениях, к которым она подключается. Если вы используете подход, основанный на базе данных, у вас должен быть файл EDMX с вашей моделью базы данных. Самый простой способ - обновить модель из базы данных.

  1. Открыть файл EDMX в Visual Studio
  2. Удалить неверную таблицу "Biers"
  3. щелкните правой кнопкой мыши в фоновом режиме и выберите «Обновить модель из базы данных»
  4. Направьте мастера на свою базу данных и выберите таблицу "Bieren", чтобы добавить
  5. Завершите работу мастера, и должна появиться таблица "Bieren"

Также можно покопаться в свойствах типа Biers и вручную изменить имя таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...