Форум программистов, компьютерный форум, киберфорум
DevOps, облачные платформы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 28.10.2012
Сообщений: 11

Code First, Database First и публикация на Azure

07.06.2016, 14:11. Показов 1585. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начну по порядку.
Создал проект ASP.NET MVC 5, в котором используется авторизация Identity.
При первом запуске создалась база данных с нужными для Identity таблицами.
В эту базу данных добавил нужные мне таблицы и задал связи.
По бд создал модель (Модель ADO.NET EDM -> конструктор EF из базы данных (что должна содержать модель))
Для работы с БД использую entity framework, поэтому создано 2 подключения.

Все работало отлично и вопросов никаких не возникало до тех пор, пока не попытался опубликовать сайт на azure. Для этого была создана на azure база данных вместе с сайтом. Подключил этот сайт к проекту. В поле подключения бд для двух подключений выбирал единственную предложенную студией запись:
C#
1
Data Source=typhqjnrau.database.windows.net;Initial Catalog=dbName;User ID=userName@typhqjnrau;Password=passwordDB
В результате в бд сайта были добавлены только таблицы для Identity (точно не помню, ставил ли галочку использования миграции). Авторизация работает прекрасно.
Далее сделал сравнение схем бд (в проекте и на сайте), после чего дополнил результирующую бд недостающими таблицами. НО сайт так и отказывается работать (кроме авторизации).
Попробовал сделать отладку, сайта, после чего вылезла ошибка типа:
"System.Data.Entity.Infrastructure.Unint entionalCodeFirstException".

Вызвала ее вот эта часть кода:
C#
1
2
3
4
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
Т.е., как я понимаю, сайт думает, что используется CodeFirst и пытается создать бд?
И тут я зашел в тупик. Как от этого можно избавиться?
Задается ли где-то явно какой подход использовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2016, 14:11
Ответы с готовыми решениями:

Публикация на Azure: не видит статические файлы
Привет! 1. Создаю в VS ASP.NET Core приложение по шаблону. Запускаю отладчик - открывается браузер, веб страничка отрисовывается. 2....

Реализация авторизации в Azure SQL Database
Предисловие - я новичок в теме баз данных в целом и SQL в частности, поэтому, возможно, мои мысли имеют мало общего с верным путем решения....

Публикация в IIS. разрешение create database запрещено в базе данных master
В общем есть такая библиотека классов https://github.com/brucedog/u2flib с демо-сайтом. Открыл с помощью VS Community 2015. Опубликовал. В...

3
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
07.06.2016, 17:20
Цитата Сообщение от molniya26 Посмотреть сообщение
В эту базу данных добавил нужные мне таблицы и задал связи.
А как добавляли? Прямо в бд через SSMS или, правильно, в коде?

Цитата Сообщение от molniya26 Посмотреть сообщение
Для работы с БД использую entity framework, поэтому создано 2 подключения.
Это как понимать? Одна база - одно подключение.

Цитата Сообщение от molniya26 Посмотреть сообщение
По бд создал модель (Модель ADO.NET EDM -> конструктор EF из базы данных (что должна содержать модель))
=>

Вы, видимо, не умеете работать с CodeFirst. В самой базе напрямую ничего не создается. Строка, которая предлагалась студией, указывала на CodeFirst-дефолтную ASP Identity базу.
Все дополнительные таблицы должны описываться POCO-классами вашего контекста.

А почему локально все работало вам и самому должно быть понятно.
Во всяком случае, вы можете молниеносно все исправить.
1
0 / 0 / 1
Регистрация: 28.10.2012
Сообщений: 11
07.06.2016, 17:49  [ТС]
Спасибо за ответ. Уже разобрался.
Да, создавал таблицы сразу в базе данных. Дело в том, что я только начал изучать ASP.NET и еще далеко не все понимаю. CodeFirst для меня в новинку.
Я изначально хотел создать свою базу данных скриптами (или в дизайнере), но Identity создавал в базе данных свои таблицы (тогда еще волшебным для меня образом).
Цитата Сообщение от IamRain Посмотреть сообщение
Это как понимать? Одна база - одно подключение.
При создании модели автоматически добавилось второе подключение такого типа:
XML
1
2
3
<add name="MyConnection" connectionString="metadata=res://*/ProtectModel.csdl|res://*/ProtectModel.ssdl|res://*/ProtectModel.msl;
provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\v11.0;attachdbfilename=|DataDirectory|\dbFile.mdf;initial catalog=dbFile;
integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
07.06.2016, 17:51
Цитата Сообщение от molniya26 Посмотреть сообщение
При создании модели автоматически добавилось второе подключение такого типа:
Это database first строка. EDM-модель тут вообще на фиг не нужна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2016, 17:51
Помогаю со студенческими работами здесь

Unknown error (code 14): Could not open database
Подскажите пожалуйста. в чем ошибка, видно что не открывается БД, но из-за чего это, и правильно ли прочитал лог? :...

SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
Переношу БД из assets. При первом запуске ловлю это: SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database ...

ASP.Net Identity аутентификация - попытка перейти от code first к database first
Всем привет! Есть проект mvc 5 с ASP.Net Identity (далее ANI) встроенной аутентификацией. В ANI используется Code First (далее CF), но...

SQLite DataBase - почему подчеркивает DataBase db: пишет (DataBase cannot be resolved to a type)
Здравствуйте! помогите понять почему подчеркивает DataBase db; пишет (DataBase cannot be resolved to a type), чем это можно исправить ...

Ошибка в CDR Analysis and Reporting Error Code 10012 Database error. Подскажите пожалуйста советом
Стоит CUCM 6.0 версии. В CDR Analysis and Reporting, при попытке сделать выборку звонков выдает ошибку &quot;Error Code 10012 Database...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru