Структура сущности - Неверное имя объекта - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть проект, в котором я использую EF 4.1.

В контексте данных:

 public DbSet<Customer> Customer { get; set; }       
 protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)      {            }

Класс модели объекта:

[Table("User",SchemaName="dbo")]
public class User{  
public int Id { get; set; }  
public string FirstName { get; set; }  
public string LastName { get; set; } 
}

После запуска приложенияЯ получаю следующую ошибку.

Неверное имя объекта dbo.User

Почему?Что не так?

Ответы [ 2 ]

2 голосов
/ 20 февраля 2012

Что в вашем методе OnModelCreating?

Попробуйте удалить имя таблицы множественного числа по умолчанию:

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
0 голосов
/ 06 августа 2014

Если вы используете классы отображения конфигурации (EntityTypeConfiguration) для определения своих таблиц, вы получите эту ошибку, если забудете присоединить класс конфигурации для таблицы к построителю моделей.

В моем случае это немного озадачило меня, потому что у меня уже была другая таблица (SomeThing), отлично работающая в этом классе Context.После простого добавления новой таблицы (OtherThing), в которой все казалось должно быть идентично первому, я получил ошибку: Invalid object name 'dbo.OtherThings.

Ответ был в моем классе Context:

public DbSet<SomeThing> SomeThings { get; set; }
public DbSet<OtherThing> OtherThings { get; set; }

...

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new SomeThingMap());

    // OOPS -- Forgot to add this!!
    modelBuilder.Configurations.Add(new OtherThingMap());
}

Для справки, вот мой SomeThingMap класс:

public class SomeThingMap : EntityTypeConfiguration<SomeThing>
{
    public SomeThingMap()
    {
        ...

        this.ToTable("SomeThing");

        ...
    }
}

И мой новый OtherThingMap класс:

public class OtherThingMap : EntityTypeConfiguration<OtherThing>
{
    public OtherThingMap()
    {
        ...

        this.ToTable("OtherThing");

        ...
    }
}

Это длинный выстрел, но я надеюсь, что это поможет направить кого-то еще в правильном направлении, по крайней мере.

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