Вид потребления в коде EF Сначала конфликтует с миграцией - PullRequest
0 голосов
/ 05 апреля 2019

В моей базе данных есть таблица "IncomingChecks". Сначала я создал его, используя EF Code. Теперь я добавил представление в свою базу данных на основе этой таблицы с именем «ViewIncomingChecks» с помощью Sql Server Management Studio, и я хочу использовать его данные в своем приложении с использованием Entity Framework. Я скопировал класс модели, изменил его имя и добавил его в контекст:

public class ViewIncomingCheck
{
    [Key]
    public int Id { get; set; }
     //...
}

public class CheckDataContext : DbContext
{
    public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks { get; set; }
    //...
}

теперь, когда я запускаю приложение, оно выдает исключение, сообщающее, что контекст БД был изменен и нуждается в миграции. Я даже пытался добавить миграцию (что кажется неправильным вариантом), и когда я добавляю миграцию, он говорит, что объект ViewIncomingChecks уже находится в базе данных.

Как я могу использовать это представление в моем коде?

Редактировать

Мое текущее решение - иметь другой контекст только для представлений. Таким образом, это не противоречит EF Migrations. Это лучший вариант или есть лучший способ справиться с этим.

1 Ответ

1 голос
/ 05 апреля 2019

Согласно тому, что я сделал в своем проекте:

  • Сначала добавьте public virtual DbSet<ViewIncomingCheck> ViewIncomingChecks { get; set; } к вашему DbConext

  • Теперь создайтеМиграция, называемая ViewDbSetAdded

  • Удалите весь код из обоих методов Up и Down, и он будет выглядеть следующим образом:

Код миграции:

public partial class ViewDbSetAdded : DbMigration
{
    public override void Up()
    {

    }

    public override void Down()
    {

    }
}
  • Теперь запустите команду update-database, и она запустит пустую миграцию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...