Миграция mvc2 в mvc4 с помощью ef/codefirst и сервера sql в базу данных в памяти

У меня есть веб-приложение ASP.NET mvc2, уже работающее на двух машинах и подключенное к серверу sql. Моя база данных составляет 200 МБ максимум. Я хочу перенести свое веб-приложение на использование mvc4 и EF, а также хочу использовать некоторые из них в базе данных памяти, удалив сервер sql.

Я проверил в Интернете, и я могу перенести свое приложение на mvc4 и EF, но я не смог найти справку о том, какую базу данных памяти я могу использовать с EF/Codefirst. Кроме того, как я могу сделать резервную копию базы данных в памяти в какое-либо веб-хранилище, такое как хранилище Amazon S3 или Azure?


person user1500193    schedule 04.07.2012    source источник


Ответы (1)


Прежде всего, почему вы хотите использовать базу данных в памяти? Базы данных Sql обладают высокой надежностью и возможностями запросов.

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

Entity Framework не подходит для этого сценария. Это объектно-реляционный преобразователь базы данных. Нет смысла использовать это с базой данных в памяти. ORM переводит объекты в реляционное хранилище (например, в базу данных). В памяти вы имеете дело только с объектами, поэтому вам не нужен ORM.

Если ваша база данных составляет всего 200 МБ, у вас не будет проблем с производительностью. База данных оптимизирована для вашего сценария, а ORM, например Entity Framework, ускорит время разработки.

person Wouter de Kort♦    schedule 04.07.2012
comment
Я работал над проектом, в котором модульное тестирование было неприемлемо медленным для некоторых тестов, использующих что угодно, кроме хранилища данных в памяти. - person Carl G; 08.10.2012
comment
@CarlG Модульное тестирование - это совсем другая история. При запуске модульных тестов следует избегать использования базы данных. Если вы используете базу данных, вы выполняете интеграционные тесты. В вашем проекте должно быть всего несколько интеграционных тестов. Модульные тесты можно запускать постоянно (особенно при использовании Test Driven Development). Интеграционные тесты можно запускать реже на сервере сборки. - person Wouter de Kort♦; 08.10.2012