Является ли изменение сгенерированного контекста подходом EF-database-first плохой практикой? - PullRequest
0 голосов
/ 03 июля 2019

Используемая мною модель базы данных создается в файле .edmx с использованием подхода базы данных сущности, первый подход .Теперь я хочу протестировать слой базы данных с базой данных InMemory.Но способ, который я нашел с помощью Усилие , заставляет меня изменить контекст, который генерируется в файле .edmx.

Изменение сгенерированного контекста противоречит подходу, основанному на базе данных, на мой взгляд.

Стандартный сгенерированный контекст:

    public DbContext()
        : base("name=DbConnectionstring")
    { }

, который получает строку подключения из файла App.Config, я не нашел способа создать строку подключения InMemory для приложенияФайл .Config.

Обязательный контекст для Effort:

    public DbContext(DbConnection connection) 
        : base(connection, false)
    { }

Все известные мне примеры платформы Entity с DbOptions / DbOptionsBuilders .Правда ли, что эти параметры лучше подходят для внедрения зависимостей?

Возможно, тестирование приложения, разработанного с использованием подхода, основанного на базе данных, отличается и не является обычным для базы данных InMemory.Так может кто-нибудь дать правильный совет по этому поводу, с источниками?

1 Ответ

1 голос
/ 03 июля 2019

Вы можете просто создать еще один файл file.cs, который добавляет еще один конструктор в ваш сгенерированный контекст, поскольку сгенерированный код использует функцию partial class lagnuage.

Просто создай.

DbContext.Effort.cs

namespace blah.blah.blah
{
     public partial class MyContext
     {

         public MyContext(DbConnection connection) 
            : base(connection, false)
         { }

     }

}
...