Установка пароля по коду для базы данных Sqlite2 на Entity Framework 6

Использование: Visual Studio Community 2015 + C# + Entity Framework 6.2 + SQlite2

Я знаю, как защитить базу данных SQlite, поскольку использую приведенный ниже код для прикрепления к ней пароля:

using (sqlite2 = new SQLiteConnection("Data Source=ModuleUserDB.db"))
{
    //Set password
    sqlite2.SetPassword("this is my password");
}

Но это не работает с Entity Framework.

Я прочитал этот пост Как в коде предоставить пароль для строки подключения в модели данных сущности ADO.Net

но я не могу найти решение для моего случая

  • Имя DbContext: ModuleUserDBEntities
  • Название базы данных: ModuleUserDB.db

Попытка изменить конструктор с помощью:

public partial class ModuleUserDBEntities : DbContext
{
    public ModuleUserDBEntities() : base("name=ModuleUserDBEntities")
    {
        // Set the password of the database
        this.Database.Connection.ConnectionString = @"Data Source=.\;Initial Catalog=ModuleUserDB.db;Persist Security Info=True;User ID=sa;Password=myownpassword";
    }
}

Но Visual Studio застревает.

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

Согласно это в строке подключения нет имени пользователя. И, пожалуйста, используйте более подходящее описание проблемы, чем «Visual Studio застревает». Если есть исключение, предоставьте полную информацию об исключении.

Crowcoder 15.04.2018 17:46

@Crowcoder Просто Visual Studio застревает с этой информацией в окне Inmediate Window: Шаг в: Переход через непользовательский код 'WpfApplication1.App..ctor' Шаг в: Переход через непользовательский код 'WpfApplication1.App.InitializeComponent'

fedeteka 15.04.2018 17:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
195
1

Ответы 1

Попробуйте метод ChangePassword.

   using (sqlite2 = new SQLiteConnection("Data Source=ModuleUserDB.db"))
   {
    sqlite2.Open();  //You must open the connection first
    sqlite2.ChangePassword("password here"); 
   }

Как изменение пароля решает проблему со строкой подключения? Также в вашем коде есть ошибки.

Crowcoder 15.04.2018 17:47

Метод ChangePassword меняет пароль, если есть пароль, если нет, устанавливает пароль :)

Christopher H. 15.04.2018 17:48

Да, но как это поможет Entity Framework подключиться?

Crowcoder 15.04.2018 17:49

Мой ответ отвечает только на How to set password for sqlite, разве это не то, о чем просит OP?

Christopher H. 15.04.2018 17:51

Я это не так читаю. OP говорит: «Я знаю, как защитить базу данных SQlite ...»

Crowcoder 15.04.2018 17:52

да, но он также сказал, что его код не работает с entityframework .... Я не уверен, что мой тоже будет работать с entityframework, давайте подождем ответа OP :)

Christopher H. 15.04.2018 17:54

@zackraiyan спасибо за поддержку, с вашим кодом я получаю "System.Data.SQLite.SQLiteExcepcio" Файл не является базой данных, а не ошибкой "Код ошибки 26"

fedeteka 15.04.2018 18:12

Это ошибка? Бессмысленно..проверьте ошибку..Я полагаю, это должен быть File is not a database or is encrypted или что-то в этом роде

Christopher H. 15.04.2018 18:15

Надеюсь, мой код вам поможет, и если да, отметьте его как ответ .. А что касается получаемой вами ошибки, это решит ее

Christopher H. 15.04.2018 18:17

@zackraiyan ошибка такая же: «Файл не является базой данных, а не ошибкой» Код ошибки 26 », и я открыл базу данных SQLite с помощью портативного средства просмотра, и база данных никогда не зашифровывается. Я буду продолжать попытки, спасибо за поддержку.

fedeteka 15.04.2018 18:24

@zackraiyan Ваш код работает, но для базы данных вне модели - Entity Framework. Как только я защищаю базу данных кодом, другие части программы (например, список записей) перестают работать. В любом случае, спасибо, я прочитал много руководств в эти дни, и кажется сложным использовать SQlite с защитой паролем на Entity Framework.

fedeteka 18.04.2018 14:06

Другие вопросы по теме