Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094

Как из Code First получить EDMX

24.08.2019, 14:44. Показов 2773. Ответов 14
Метки нет (Все метки)

Лучший ответ Сообщение было отмечено OwenGlendower как решение

Решение

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть у меня Code First

Model Customer

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
    public class Customer
    {
        /// <summary>Уникальный индетификатор.</summary>
        public int Id { get; set; }
 
        /// <summary>Имя заказчика.</summary>
        public string Name { get; set; }
 
        /// <summary>Телефон заказчика.</summary>
        public string phone { get; set; }
 
        /// <summary>Адрес заказчика.</summary>
        public string address{ get; set; }
 
        /// <summary>Несколько слов о заказчике.</summary>
        public string Comment { get; set; }
 
        /// <summary>Заказы клиента.</summary>
        /// Связь один ко многим с таблицей «Order».
        public ICollection<Order> Orders { get; set; }
        
        public Customer()
        {
            Orders = new List<Order>();
        }


Model Order

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public class Order
    {
        /// <summary>Уникальный индетификатор.</summary>
        public int Id { get; set; }
 
        /// <summary>Дата начала заказа.</summary>
        public DateTime DateBegin { get; set; }
 
        /// <summary>Дата окончания заказа.</summary>
        public DateTime DateEnd { get; set; }
 
        /// <summary>Номер заказа.</summary>
        public string Number { get; set; }
 
        /// <summary>Заказчик.</summary>
        ///  Связь один ко одному с таблицей «Customer».
        public int CustomerId { get; set; }
        public Customer Customer { get; set; }
 
    }


DbContext

C#
1
2
3
4
5
6
7
8
9
    public class MyContext : DbContext
    {
        public MyContext ()
            : base("name=MyContext ")
        {
        }
        public virtual DbSet<Order> Orders { get; set; }
        public virtual DbSet<Customer> Customers { get; set; }
    }


Как из этого можно сделать красивую EDMX?

Я вижу только один способ:
1) Инициализировать БД
2) использовать подход Database First

Но мне кажется, что есть грамотный способ.

Добавлено через 2 часа 14 минут
Нашёл в интернете.
Для этого Вам понадобится расширение: Entity Framework Power Tools
После установки можете кликнуть на файл с реализацией DbContext правой кнопкой мыши и в подменю Entity Framework сгенерировать схему (но она бдует только для чтения)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2019, 14:44
Ответы с готовыми решениями:

Как получить доступ к контролу в DataTemplate из code behind
var s = (Button)FindName(&quot;Button_Done&quot;); эта строка возвращает Null, как получить реальный объект? &lt;DataTemplate...

Как добавить валидацию к сформированным классам EDMX модели?
Как добавить валидацию к сформированным классам EDMX модели? Если при изменении БД, придется пересоздать edmx, и всю валидацию придется с...

Как получить откомпилировать в byte-code (jar, class) исполняющийся на MIDP устройстве?
Краткая предыстория я в прошлом низкоуровневый программист (c++ asm) решил заняться программированием под MIDP на j2me имею установленный...

14
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
25.08.2019, 13:02
Чипс, а зачем вам EDMX?
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 11:31  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Чипс, а зачем вам EDMX?
Чтобы карандашом на бумажке не рисовать =)
Иногда хочется видеть картинку, а не код.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 11:32
Чипс, так диаграмму по базе сформируйте. ПО для этого имеется.
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 11:36  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Чипс, так диаграмму по базе сформируйте.
А если у вас есть только код и вы его не запускали и EF ещё не создала базу?
Получается не очень рационально, запускать код, чтобы сделать базу, а потом из базы делать EDMX.
Это ещё и инициализатор писать.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 11:46
Чипс, если вам нужна диаграмма базы, то её и делайте. EDMX тут причём? Какой смысл EDMX заводить, когда уже есть Code First? И что нерационального в создании базы по модели EF'а?
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 12:58  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Какой смысл EDMX заводить, когда уже есть Code First?
Вот я сижу и пишу Code First, описываю модели и связи между ними и вот у меня уже 10 моделей с разными связями, и вот я хочу убедится, что все связи сделаны правильно, может надо где-то связь добавить, а где-то убрать, а где-то изменить вид связи, для этого я хочу увидеть картину структуры БД в "целом".
Не знаю как вам, но мне тяжело держать все связи в БД из 10 таблиц в голове
В связи с чем, я решаю облегчить нагрузку на голову и нарисовать структуру БД на бумажке или сделать EDMX по уже написанному коду, посмотреть, внести изменения в Code First, сделать EDMX ещё раз (или перерисовывать связи на бумажке), посмотреть на результат, подумать, внести изменения в Code First и т.д..
Сейчас я пытаю сделать небольшую БД используя подход Code First (как раз где-то таблиц 10 и будет).
И мне хочется видеть схему, но не хочется рисовать её на бумажке.

Цитата Сообщение от Usaga Посмотреть сообщение
И что нерационального в создании базы по модели EF'а?
Не знаю. Где вы увидели, мои слова о том что это нерационально?

Я говорил, что не рационально из кода Code First делать БД, а потом из БД делать EDMX, кодга можно сразу из Code First сделать EDMX.
Я не хочу работать с EDMX, я хочу на неё смотреть, а работать с Code First.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 13:19
Чипс, у меня на работе схема базы содержит около двух сотен таблиц и представлений. И модель мы описываем руками (Code First). Мне ещё ни разу не приходилось связи как-то в голове удерживать. Т.е. всё, что мне надо знать о таблице я в самой таблице вижу. В том числе, когда таблицы ещё и нет. Поэтому я не понимаю вашего желания сделать модель EDMX взамен диаграммы. Если вам нужна диаграмма, то диаграмму и нарисуйте. Или сгенерируйте по схеме базы.

Цитата Сообщение от Чипс Посмотреть сообщение
Я говорил, что не рационально из кода Code First делать БД, а потом из БД делать EDMX, кодга можно сразу из Code First сделать EDMX.
Я не хочу работать с EDMX, я хочу на неё смотреть, а работать с Code First.
Я вам не EDMX предлагаю, а диаграмму. Не путайте эти вещи. Первое - модель EF'а построенная по существующей базе. Второе - визуализация схемы базы, которая вообще ни про какие EF'ы не знает.

У вас потребность в диаграмме. Чего вы зацепились за EDMX, который такой диаграммой не является?

Добавлено через 2 минуты
Может быть, если вам так кровь из носу нужна именно EDMX, то начать с формирования скрипта создания базы, по которой вы потом свою EDMX и построите?

А то фигня какая-то получается: вы сидите и руками ваяете Code First, но мечтаете о EDMX. Не находите, что это странно? Хотеть один подход, а делать другой.
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 14:31  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Т.е. всё, что мне надо знать о таблице я в самой таблице вижу. В том числе, когда таблицы ещё и нет.
У вас большой опыт работы, у меня нет. (Возьмите меня к себе на работу и я буду делать все, что вы мне скажите и как скажите )
У меня нет под боком опытного программиста у которого можно что-то спросить, форум и книги такого программиста не заменят.
EDMX это расширение файла содержащего диаграмму, разве нет?

Цитата Сообщение от Usaga Посмотреть сообщение
А то фигня какая-то получается: вы сидите и руками ваяете Code First, но мечтаете о EDMX. Не находите, что это странно? Хотеть один подход, а делать другой.
Поскольку такой функционал добавлен в Visual Studio, видимо я не один такой, кто хочет ваять в Code First и мечтать о EDMX.
Согласитесь, если бы это было не востребовано, то никто не стал бы разрабатывать такой функционал.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 16:48
Цитата Сообщение от Чипс Посмотреть сообщение
EDMX это расширение файла содержащего диаграмму, разве нет?
Нет. Это модель построенная по схеме базы. Дизайнер её умеет в виде диаграммы отображать. Но основное назначение - модель.

Цитата Сообщение от Чипс Посмотреть сообщение
Поскольку такой функционал добавлен в Visual Studio, видимо я не один такой, кто хочет ваять в Code First и мечтать о EDMX.
Согласитесь, если бы это было не востребовано, то никто не стал бы разрабатывать такой функционал.
Вообще-то, я от вас первого слышу, что вам хочется одно, но делаете вы другое. Если вам нужна модель EDMX, то вы её генерируете по существующей схеме базы. Если схемы нет и вам хочется, чтобы EF её вам родил (или схема мудрёная), то вы ваяете Code Firts.

Собственно вопрос в чём: нафига вам Code First, если вы хотите EDMX? Авторами EF'а предполагалось, что вы выберете что-то одно, что больше подходит под ситуацию.

Но я отговаривать не стану. Свою точку зрения я донёс: хотелка неадекватная.
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 16:52  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Но я отговаривать не стану. Свою точку зрения я донёс: хотелка неадекватная.
Очевидно, что мы говорим о разных вещах.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 16:54
Чипс, нет. Я понял что вы хотите. Вам нужна диаграмма классов. И вы решили, что раз оно есть в EDMX, то это и надо использовать. Но это побочная "фича". И наличие EDMX делает Code First бесполезным.
0
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 16:57  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Я понял что вы хотите. Вам нужна диаграмма классов. И вы решили, что раз оно есть в EDMX, то это и надо использовать.
Если вы всё поняли и видите, что я заблуждаюсь, Вы могли указать мне на мои заблуждения и выдать правильную терминологию, что бы я не путал EDMX с диаграммой классов.
Хотя в конечном счёт так и получилось
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
26.08.2019, 17:00
Чипс, я и выдал. Парой постов выше. Вы, видимо, пропустили. Я объяснил, что EDMX - модель данных построенная по схеме базы, а вам нужна только диаграмма. Её можно построить как в SQL Management Studio по схеме, так и отдельными тулзами по вашему исходному коду. Так же, VS умеет диаграммы строить по коду, но в платных редакциях.

А EDMX генерировать имея Code First (и наборот) - глупо. Две модели одной базы данных.
2
83 / 61 / 17
Регистрация: 21.08.2015
Сообщений: 1,094
26.08.2019, 17:01  [ТС]
Спасибо вам за разъяснение терминологии, а то я действительно путался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.08.2019, 17:01
Помогаю со студенческими работами здесь

Как в Excel'е в VBProject.Module1.Code прописать команду заносящую(передающую) код в VBProject.Sheet1.Code?
Как в Excel'е в VBProject.Module1.Code прописать команду заносящую(передающую) код в VBProject.Sheet1.Code??? Или какими командами...

Как понять ошибку: "Unable to invoke Code Completion due to errors in source code"
Неподскажите что означает эта надпись????:)) Unit1.cpp(1): Unable to invoke Code Completion due to errors in source code

Как сделать code /code?
Как сделать чтоб у меня на форуме текст выводился со всеми пробелами если его поместить в (code) (/code). Скобки вместо квадратных я...

WCF не передаёт сущности созданные EDMX моделью
При попытке передать сущности сформированные EDMX моделью , если данные сущности имеют связи WCF клиент падает с исключением...

Entity framework модель edmx прочитать таблицу
Просто вывести таблицу на dataGridView я могу так context = new BDEntities(); tableBasket.DataSource = context.Device; В данном...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru