|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Добрый день! В прошлом посте ( http://www.sql.ru/forum/1274643/ef-database-first-kak-podkluchitsya-s-pomoshhu-sformirovannoy-stroki-podklucheniya ) я не без вашей помощи (спасибо!) подключил базу из сформированной в коде строки подключения. Подключение к серверу состоялось, но где теперь все таблицы? Как их найти? Ранее, когда строка была в App.config это делалось достаточно просто: Код: xml 1. 2. 3.
Код: c# 1. 2. 3. 4. 5.
Класс DbContext на этот случай имеет среди множества конструкторов один подходящий к данному случаю: " ... DbContext(DbConnection, DbCompiledModel, Boolean) Создает новый экземпляр контекста с использованием существующего соединения с базой данных и инициализирует его из заданной модели. " Вроде бы то, что надо (DbConnection уже имеется), но что такое DbCompiledModel не понимаю! Где взять или как сформировать не знаю. Выкрутиться можно: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Работает. Но, если в базе полсотни и более таблиц, то выписывать этот класс весьма тоскливо. Как быть? С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 11:12 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, Что сказал Гугл на фразу Hello World EF? Или Demo EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 12:12 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Petro123ValGer, Что сказал Гугл на фразу Hello World EF? Или Demo EF? Не понял, что вы имеете в виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 12:20 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, У вас ошибка или необычный проект? Или это ваш первый проект? Я новую технологию изучаю делая Hello World. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 13:30 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, покажи свой класс MyProductShopEntities он же наследует от System.Data.Entity.DbContext ? тогда можешь сделать еще один конструктор и вызывать его со своим connString Код: c# 1.
и еще бросилось в глаза Код: c# 1.
если CustId это ключ в таблице Customers, то проще так: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2017, 10:27 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммист, Нашёл достаточно простое решение проблемы, о которой писал выше (как не выписывать заново все таблицы в файле контекста). Обратил внимание на то, что ранее, фигурально говоря, "пропустил мимо ушей". А именно то, что класс контекста (автогенерируемый при создании проекта) описывается как частичный (partial). Хоть и длинно, но приведу его: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Видно, что в конструктор класса (базовый класс) входит имя контекста ("MyProductShopEntities"), а ниже имеются все нужные сущности(таблицы). Мне и подумалось, а почему бы не соорудить вторую часть этого класса (естественно, partial) с конструктором, который принимает сгенерированную в коде строку подключения. Сказано сделано: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
И voila! Всё работает - и выписывать сущности не нужно, и контекст появился. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 09:55 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
это как раз то, что я тебе посоветовал)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 11:01 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммист, чтобы не создавать второй класс, можно было дописать в Blah.Context.tt генерацию твоего конструктора Код: c# 1. 2.
и он бы появился в сгенерированном классе MyProductShopEntities ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 11:05 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммистпогроммист, чтобы не создавать второй класс, можно было дописать в Blah.Context.tt генерацию твоего конструктора Код: c# 1. 2.
и он бы появился в сгенерированном классе MyProductShopEntities Оччень интересно! А не могли бы вы по подробнее. Где об этом почитать? Не будет ли эта добавка автоматически стираться. В контексте об этом прямо говорится. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 16:38 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGerНо, если в базе полсотни и более таблиц, то выписывать этот класс весьма тоскливо. Как быть? С уважением ВВГ А GenerateFromDb? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 16:54 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGerНе будет ли эта добавка автоматически стираться. В контексте об этом прямо говорится. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
С уважением ВВГ из какого файла этот текст? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 17:32 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Petro123ValGerНо, если в базе полсотни и более таблиц, то выписывать этот класс весьма тоскливо. Как быть? С уважением ВВГ А GenerateFromDb? Уже всё сгенерировано и одним из результатов этой генерации является стандартная строка соединения в App.config со значением "persist security info=True;". А мне этого не нужно, поскольку на SQL-сервер должны заходить разные пользователи с разными ролями. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 16:16 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммистValGerНе будет ли эта добавка автоматически стираться. В контексте об этом прямо говорится. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
С уважением ВВГ из какого файла этот текст? Из файла *.context.cs Мой пример см на рисунке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 16:19 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, Мож я чего не понял, но этот парвметр меняют на нужный после разработки. В продакшене. Поэтому не понял, что ты мучаешься неделю. Наверно не тем путём пошёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 19:05 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, Т.е. ещё раз резюмируй. Тебя устраивает генерация всех моделей по существующей бд. Дальше только мелким напильником рихтуем. Так? Я тоже ленивый программист, и тоже люблю мало кода руками писать.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 19:18 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Petro123ValGer, Т.е. ещё раз резюмируй. Тебя устраивает генерация всех моделей по существующей бд. Дальше только мелким напильником рихтуем. Так? Я тоже ленивый программист, и тоже люблю мало кода руками писать.)) Ну, примерно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 09:31 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGer, Ок. А то у меня скоро проект именно DB главная и первичная (first). И не вижу пока твоих сложностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 10:15 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
ValGerпогроммистпропущено... из какого файла этот текст? Из файла *.context.cs Мой пример см на рисунке. читай внимательно я предлагал редактировать не *.cs, a MyProductShopModel.Context .tt ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 15:43 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Petro123ValGer, Мож я чего не понял, но этот парвметр меняют на нужный после разработки. В продакшене. Поэтому не понял, что ты мучаешься неделю. Наверно не тем путём пошёл. я уже тоже запутался, что хочет ТС но у него вроде там под каждого пользователя приложения свой ConnString задуман ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 15:44 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммист, Вроде бы это изврат в теме про ОРМ. В орм обезличенный анонимус))). Я тоже не в курсе что там у него. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 17:14 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
Petro123погроммист, Вроде бы это изврат в теме про ОРМ. В орм обезличенный анонимус))). Я тоже не в курсе что там у него. я не понял, о чем ты а я про вот эту ветку http://www.sql.ru/forum/1274643/ef-database-first-kak-podkluchitsya-s-pomoshhu-sformirovannoy-stroki-podklucheniya ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 17:43 |
|
EF DB First - как найти контекст при подключении из кода
|
|||
---|---|---|---|
#18+
погроммист, Тут у меня разрыв шаблона. )) По хиберу знаю, что он ходит под единой строкой коннекта, а внешняя либа уже делает права для юзверя. Как это в EF пока не знаю. Ладно, пусть автор проясняет. Если захочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 18:09 |
|
|
start [/forum/topic.php?fid=17&msg=39539849&tid=1349248]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 174ms |
0 / 0 |