Ошибка изменения DbContext в проекте WCF

#c# #entity-framework #wcf #startup

#c# #entity-framework #wcf #запуск

Вопрос:

Дорогие в моем решении у меня есть проекты, состоящие из нескольких библиотек классов и двух проектов (WcfUI и MvcUI). Я трачу 99% времени на MvcUI. однако WcfUI использует ту же базу данных и службы для серверной части. Используя общий шаблон репозитория и entity Framework, я могу использовать один и тот же DbContext, написанный один раз как для WCF, так и для MVC. Проблема возникает, когда я создаю новый DbSet и добавляю миграцию. Mvc публикуется после нескольких изменений, но не в Wcf, потому что последние обновления не затрагивали его логику.

Должен ли я всегда публиковать как Mvc, так и Wcf, чтобы избежать ошибки «Модель базы данных / контекст был изменен …»

Или для Wcf рекомендуется вводить в App_Start новый класс, как показано ниже:

 [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(WcfUI.App_Start.DbInitialization), "Start")]

namespace WcfUI.App_Start
{
    using DAL.Database.DbContexts;
    using System.Data.Entity;
    /// <summary>
    /// To Avoid EF error: model was changed since bla bla...
    /// </summary>
    public static class DbInitialization
    {
        public static void Start() => Database.SetInitializer<MvcDbContext>(null); 
    }
}    
  

На данный момент я использую этот класс, и проблема кажется решенной, но я не совсем уверен, является ли это правильным решением?

Комментарии:

1. Должен ли я всегда публиковать оба — да. Что, если вы внесете изменение в базу данных, которое нарушит работу другого приложения?

2. Ну .. это все равно приведет к сбою 🙂