Я хочу, чтобы Entity Framework никогда не перезаписывала или не пыталась создать базу данных, к которой я подключаюсь. Это обычная база данных, к которой ранее обращался сайт ASP (визуальный базовый сценарий). Я видел соглашение, где вы проходите «имя =» в базовый конструктор, как так ...Рекомендации по инициализации Entity Framework
//example 1
public class SchoolDBContext: DbContext
{
public SchoolDBContext() : base("name=SchoolDBConnectionString")
{
}
}
но я предпочел бы не иметь его HARDCODED (как выше), так что, возможно, ...
//example 2
public SchoolDBContext(string ConnectionString) : base("name=" + ConnectionString) {
}
но я хотел бы также, чтобы быть в состоянии ошибки, если строка пуста ...
//example 3
public SchoolDBContext(string ConnectionString) : {
if (string.IsNullOrWhitespace(ConnectionString) throw Exception("empty connection string");
base("name=" + ConnectionString);
}
Вопрос 1: Я не уверен, если третий бит кода делает то же самое работа как вторая, не так ли? Поскольку третий пример может вызвать конструкцию без параметров сначала, прежде чем вызвать базу с именем «name =»
Вопрос 2: Доступны ли опции в конструкторе, которые могут быть использованы для более надежной настройки EntityFramework?
Я использую EF 6
http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code- first.aspx ... CreateDatabaseIfNotExists: Это инициализатор по умолчанию. Как следует из названия, он создаст базу данных, если она не существует в соответствии с конфигурацией. Однако, если вы измените класс модели, а затем запустите приложение с этим инициализатором, тогда он будет генерировать исключение. – Nnoel
Я отмечаю это правильно, потому что нашел свой ответ, перейдя по ссылке «CreateIntializer». Благодарю. – Nnoel