powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework создание связи через Fluent API
46 сообщений из 46, показаны все 2 страниц
Entity Framework создание связи через Fluent API
    #38755464
VSirchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, я только начинаю работать с Entity Framework и поэтому не со всем еще разобрался

Есть такая задача, сделать связь между такими моделями моделями:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class Object1 {
    public int ID { get; set; }
    public string Name { get; set; }
    public IList<Object2> Object2s {get; set;}
}
public class Object2 {
    public int ID { get; set; }
    public string Name { get; set; }
    public int Object3ID { get; set; }
    public virtual Object3 Object3 { get; set; }
}
public class Object3 {
   public int ID { get; set; }
   public string Name { get; set; }
}




причем надо сделать связь так, чтобы в базы была отдельная таблица данных по всем трем объектам, естественно их ID

А вот как это сделать не создавая такую таблицу отдельно и не описывая дополнительной логики, я пока не разобрался
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38756745
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSirchenko,

Во-первых, старайтесь следовать правилам наименования, принятых в EF, т.е. поле идентификатора должно быть таким: Id. Не ID не Object1ID или Object_ID, а Id.

Во-вторых, связи описывайте с помощью virtual и ICollection<T>.

Вот так правильно:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Object1 {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Object2> Object2s { get; set; }
}
public class Object2 {
    public int Id { get; set; }
    public string Name { get; set; }

    public int Object3Id { get; set; }
    public virtual Object3 Object3 { get; set; } // EF поймёт, что Object3Id -- внешний ключ
}
public class Object3 {
    public int Id { get; set; }
    public string Name { get; set; }
}



При таком описании, EF сам создаст связи и, если надо, внешние ключи. Например, здесь не указан внешний ключ у Object2 на Object1, тогда EF сам создаст поле Object2.Object1_Id

Следуйте принятым правилам наименования.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38756932
VSirchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет того что нет ссылки в Object2 на Object1 - так ее и не должно быть, так как данные в таблице Object2s, должны быть в виде списка и связь с Object1 и Object3 должны иметь в другой таблице

примерно по данным чтобы было понятно:

Object1 - пусть будет каталогом, со списком Object2
Object2 - книги, которые не хранят данные в каком каталоге они находятся, это просто наименование книги, со ссылкой на Object3
Object3 - автор книги, тоже просто как наименование и не привязан к конкретной книге

так вот мне надо чтобы в базе создалась таблице, в которой будут указаны ключи на каждый объект
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757433
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSirchenkoтак вот мне надо чтобы в базе создалась таблице, в которой будут указаны ключи на каждый объект

Связь многие-ко-многим в EF реализуется следующим образом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Object1 {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Object2> Object2s { get; set; }
}
public class Object2 {
    public int Id { get; set; }
    public string Name { get; set; }

    public int Object3Id { get; set; }
    public virtual Object3 Object3 { get; set; }

    public virtual ICollection<Object1> Object1s { get; set; }
}



При этом EF сам создаст таблицу с внешними ключами Object1Object2s (или Object2Object1s) в зависимости от порядка в котором идёт описание объектов.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757452
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используй внятную Database First, а не ковыряние в помоях. Многие вопросы сами собой отпадут. Сделай тестовую БД, сгенери по ней контекст, получи бесплатно классы и красивую картинку в дизайнере, радуйся.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757525
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruИспользуй внятную Database First

фу-фу-фу...
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757685
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruИспользуй внятную Database First
фу-фу-фу...
Чем не устроила бесплатная генерация классов и красивая диаграмма? Ну если нравится на каждый чих упорно писать код, я не против. А я просто нажму кнопку обновить и схема получит изменения. Всё, можно дальше работать.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757903
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЧем не устроила бесплатная генерация классов и красивая диаграмма?

Какая генерация классов? Зачем? Диаграмму по классам Visual Studio рисует очень красивую. Что ещё нужно? А что делать с юнит-тестированием? А как на счёт иерархий классов? Миграции? Независимость от БД? Как это в Database first укладывается? Никак.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757913
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruНу если нравится на каждый чих упорно писать код, я не против.

Классы данных, это основное ядро приложения. Какого рожна я должен отдавать самое важное на откуп какой-то убогой генерации? Я спроектирую классы таким образом, как мне удобно, а не какому-то упоротому генератору. Потом это легко зальётся в любую базу данных. С помощью механизма миграций можно тонко настроить критические места, расставить индексы, и это будет работать везде.

codearticles.ruА я просто нажму кнопку обновить и схема получит изменения. Всё, можно дальше работать.

Да хоть с какой стороны не подходи, надо схему делать. Либо в базе данных, либо кодом. Никакого профита. Ты кнопку нажимаешь, получаешь классы. Я кнопку нажимаю, получаю базу. Только в моём случае, я могу развернуть базу в Oracle, MS SQL, Postgre SQL, Firebird, MySQL, SQLite -- это будет везде работать, в твоём ты будешь плясать под дудку выбранного вендора. Нахера это надо? Не пойму, зачем себе изначально усложнять жизнь?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757931
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru,

И да, если мне попадётся проект, где надо писать программу для уже существующей БД, можно смело выбирать Database First. Совсем от этого способа я не отказываюсь. Но для нового проекта, только Code First.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757977
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruЧем не устроила бесплатная генерация классов и красивая диаграмма?
Какая генерация классов? Зачем?
Обычная генерация классов. Чтобы не писать их руками.

hVosttДиаграмму по классам Visual Studio рисует очень красивую. Что ещё нужно?
Ты упал что ли? Я про edmx, это не просто диаграмма, это конфигуратор всей схемы.

hVosttА что делать с юнит-тестированием?
А что с ним не так?

hVosttА как на счёт иерархий классов?
Иерархии классов были, есть и будут. А что?

hVosttМиграции?
Есть миграции. А что?

hVosttНезависимость от БД?
Конечно, всё тоже самое. MS SQL, Oracle и т.п.

hVosttКак это в Database first укладывается? Никак.
Почему не укладывается? Ты точно понимаешь, о чем я говорю?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757988
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ru, И да, если мне попадётся проект, где надо писать программу для уже существующей БД, можно смело выбирать Database First. Совсем от этого способа я не отказываюсь. Но для нового проекта, только Code First.
Вообще никакой разницы, новый проект или не новый. Это не имеет никакого отношения. Вопрос только в подходе. Никто мне не мешает сделать базу и слить схему в модель по одной кнопке. Так даже проще. А особое удобство начинается, когда у тебя уже сделана БД с нуля, приложение функционирует, в БД есть тестовые данные. И нужно писать новый функционал, изменять старый. Базу уже просто так не снесешь. Да и что за кретинизм, всё-время сносить БД, создавать схему заново и наполнять данными? А когда твоё приложение превращается в монстра, БД распухает в схеме и в данных, тогда плюсы Database First просто очевидны.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38757998
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruНу если нравится на каждый чих упорно писать код, я не против.
Классы данных, это основное ядро приложения. Какого рожна я должен отдавать самое важное на откуп какой-то убогой генерации? Я спроектирую классы таким образом, как мне удобно, а не какому-то упоротому генератору. Потом это легко зальётся в любую базу данных. С помощью механизма миграций можно тонко настроить критические места, расставить индексы, и это будет работать везде.
Какие-то глупости. У нащелкаю в дизайнере тоже самое, что мне нужно. Сгенерятся классы, не хуже написанных руками. Да и зачем мне писать всё руками-то? Миграции я сам тебе любые напишу, в чем проблема-то?

hVosttДа хоть с какой стороны не подходи, надо схему делать. Либо в базе данных, либо кодом. Никакого профита.
Ну так сделай. Я быстрее схему сделаю, нащелкаю в Management Studio, чем ты неделю будешь ипаться с классами и их отношениями. Профит колоссальный. А вообще базу по феншую делает DB девелопер. Так что вообще всё упрощается. Всё тебе сделали, ты нажал кнопку, всё сгенерилось.

hVosttЯ кнопку нажимаю, получаю базу. Только в моём случае, я могу развернуть базу в Oracle, MS SQL, Postgre SQL, Firebird, MySQL, SQLite -- это будет везде работать, в твоём ты будешь плясать под дудку выбранного вендора. Нахера это надо? Не пойму, зачем себе изначально усложнять жизнь?
Я выше писал про оракл, всё работает. Будут работать и другие, не интересовался. Наверняка есть провайдеры.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758005
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruОбычная генерация классов. Чтобы не писать их руками.

А база данных сама что ли волшебным образом появляется?

Давай посмотрим, с самого нуля.

Database First

1. Открыть редактор базы данных
2. Создать базу данных
3. Создать таблицу(ы), определить набор полей
4. Создать проект в студии
5. Добавить edmx, настроить подключение, сгенерировать классы
6. Можно разрабатывать

Code First

1. Создать проект в студии
2. Можно разрабатывать (добавляешь классы по мере необходимости не отходя от кассы)


Что делать, если понадобилось добавить(изменить) класс/таблицу

Database First

1. Открыть редактор базы данных
2. Добавить (открыть) таблицу, определить (изменить) набор полей
3. Перейти в студию, обновить схему
4. Починить то, что сломалось (например, если изменились наименования полей)
5. Продолжать разработку

Code first

1. Добавить(изменить) класс
2. Продолжать разработку


Что делать, если надо перенести разработку проекта на другой комп:

Database First

1. Выгрузить базу (SQL или бекап)
2. Перенести файлы проекта и базы данных
3. Загрузить базу (SQL или бекап)
4. Настроить подключения
5. Продолжать разработку

Code First

1. Перенести файлы проекты
2. Продолжать разработку

...

Ну и в чём профит?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758006
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruМиграции я сам тебе любые напишу, в чем проблема-то?

Только что ты недавно говорил, что дескать зачем руками что-то делать. Так вот писать миграции руками - самое не благодарное дело.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758012
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЯ быстрее схему сделаю, нащелкаю в Management Studio, чем ты неделю будешь ипаться с классами и их отношениями.

С какого перепуга? Добавляешь классы по мере разработки, ничего тебе не мешает. Это часть разработки, как само собой разумеющееся.

Например, понадобился тебе клиент, создаешь класс

class Client:Entity
public string Name

всё, попёр дальше. понадобилось добавить полей, добавил. перенёс, убрал.

codearticles.ruА вообще базу по феншую делает DB девелопер. Так что вообще всё упрощается. Всё тебе сделали, ты нажал кнопку, всё сгенерилось.

В таком случае да. Но у нас обычно всё идёт от разработки. DBA подключается по мере необходимости, и участвует в процессе разработки. Когда на первом месте данные (дата-драйвен), тогда разработка ведётся по методу сначала база данных. Но это редкие случаи.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758059
VSirchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может все таки вернемся с моему вопросу, как сделать то что мне надо, и так как я в своем случае использую Class First, то давайте плясать от сюда, а ваши разборки что лучше давайте обсуждать в другой теме
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758117
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttА база данных сама что ли волшебным образом появляется?
Да, её делает db developer. Для тебя это и есть волшебство. Но даже если тебе перепадет эта работа, накликать таблички с отношениями в management studio куда приятнее ручного унылого гавнокода проекции в виде классов на C#.

hVosttДавай посмотрим, с самого нуля.

Database First

1. Открыть редактор базы данных
2. Создать базу данных
3. Создать таблицу(ы), определить набор полей
4. Создать проект в студии
5. Добавить edmx, настроить подключение, сгенерировать классы
6. Можно разрабатывать

Code First

1. Создать проект в студии
2. Можно разрабатывать (добавляешь классы по мере необходимости не отходя от кассы)
Первое - это дизайнеры и мастеры. Второе - это монотонная рутина. Пусть в первом варианте будет хоть 10 пунктов, я раз в 100 быстрее подниму валидную модель, чем ты будешь писать её врукопашную. Причем, тебе периодически нужно будет запускать проект, дебажить, смотреть косяки маппинга, исправлять. А я тупо открою management studio, создам в ней диаграмму, накликаю таблички, драг-н-дропом сделаю связи. Всё. Захожу в студию, рефрешусь, модель готова.


hVosttЧто делать, если понадобилось добавить(изменить) класс/таблицу

Database First

1. Открыть редактор базы данных
2. Добавить (открыть) таблицу, определить (изменить) набор полей
3. Перейти в студию, обновить схему
4. Починить то, что сломалось (например, если изменились наименования полей)
5. Продолжать разработку

Code first

1. Добавить(изменить) класс
2. Продолжать разработку
В твоем случае изменить класс не получится, куда это будет сохраняться? В космос? Тебе нужно править и классы, и залезать в БД и править там поле. А это двойной гемор. Постоянно следить там за миграциями и прочими радостями - это кретинизм чистой воды. Мне не нужно никуда следить, обновил модель и всё само построилось.

hVosttЧто делать, если надо перенести разработку проекта на другой комп:

Database First

1. Выгрузить базу (SQL или бекап)
2. Перенести файлы проекта и базы данных
3. Загрузить базу (SQL или бекап)
4. Настроить подключения
5. Продолжать разработку

Code First

1. Перенести файлы проекты
2. Продолжать разработку
Из edmx точно так же можно сгенерить базу данных. Во-вторых, чем тебе бэкап не нравится? Тоже отличный вариант. Не вижу никаких сложностей поднять базу. Или это проблема?

hVosttНу и в чём профит?
Профит в том, что я избавлен 100% от рутины и ручного кодирования. Меньшее число пунктов вовсе не означает, что задачу ты решишь быстрее и проще. С этим согласен?

hVosttcodearticles.ruМиграции я сам тебе любые напишу, в чем проблема-то?
Только что ты недавно говорил, что дескать зачем руками что-то делать. Так вот писать миграции руками - самое не благодарное дело.
Писать миграции руками - самое не благодарное дело. Я это всегда говорил. В чем противоречие? Я тебе сказал, что миграции так же есть в моем варианте. Если надо - пиши. Не надо - не пиши. Мне не надо.

hVosttС какого перепуга? Добавляешь классы по мере разработки, ничего тебе не мешает. Это часть разработки, как само собой разумеющееся.
С обычного перепуга. За сколько накидаешь мне вот такой концепт из пару десятков таблиц? Я сделаю это 2 минуты. Аналитик вёл uml схему в том же enterprise architect, отдал мне готовую часть. Я тупо взял и выгрузил этот uml в БД. Из БД я сгенерил честный edmx и начал писать прикладной код. Итого 2 минуты. Сколько уйдет у тебя времени?
Даже если сравнивать чистое время management studio vs гавнокод на C#, я выбираю первый вариант. Во-первых, его сможет накликать через management studio даже студент. Порог вхождения минимален. То есть эту задачу можно поручить хоть обезьяне. Во-вторых, куда приятнее драг-н-дропом набрасывать схему, чем сидеть потеть писать говнокод, тестировать его, снова писать.

hVosttВ таком случае да. Но у нас обычно всё идёт от разработки. DBA подключается по мере необходимости, и участвует в процессе разработки. Когда на первом месте данные (дата-драйвен), тогда разработка ведётся по методу сначала база данных. Но это редкие случаи.
Да какая разница, кто куда подключается. Схема может прийти откуда угодно, от заказчика например. С ней можно делать что угодно, в том числе и генерировать проксю. И это прекрасно. А у тебя что не изменение, то ныряй снова в гавнокод. В топку.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758137
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruПервое - это дизайнеры и мастеры. Второе - это монотонная рутина. Пусть в первом варианте будет хоть 10 пунктов, я раз в 100 быстрее подниму валидную модель, чем ты будешь писать её врукопашную. Причем, тебе периодически нужно будет запускать проект, дебажить, смотреть косяки маппинга, исправлять. А я тупо открою management studio, создам в ней диаграмму, накликаю таблички, драг-н-дропом сделаю связи. Всё. Захожу в студию, рефрешусь, модель готова.

Если у тебя изначально базу данных делает кто-то другой, да ещё и вперёд батьки, о чём вообще спор? Code First подразумевает, что никакой базы данных ещё нет. И до какого-то момента она даже и не нужна. Более того, приложение может работать вообще без базы данных, до тех пор пока не будет сгенерирована и подключена. В этом вся соль
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758144
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruВ твоем случае изменить класс не получится, куда это будет сохраняться? В космос? Тебе нужно править и классы, и залезать в БД и править там поле. А это двойной гемор. Постоянно следить там за миграциями и прочими радостями - это кретинизм чистой воды. Мне не нужно никуда следить, обновил модель и всё само построилось.

Ниче не надо. Изменил класс и продолжил разработку. Когда надо, запустится либо автоматическая миграция, либо создашь миграцию одной командой в нугет. В чем проблемы-то? Главное, всё под контролем.

codearticles.ruИз edmx точно так же можно сгенерить базу данных. Во-вторых, чем тебе бэкап не нравится? Тоже отличный вариант. Не вижу никаких сложностей поднять базу. Или это проблема?

Проблема в высокой связности. Зачем мне на этапе разработки возиться с бекапами? Я вообще-то с классами работаю. Таблицы в базе данных -- это всего лишь способ хранения, зачем ходить задом наперёд? Раньше так и разрабатывали приложения, сам активно в таком процессе учавствовал. Сначала пилится схема БД, потом от неё все пляшут. Сейчас наоборот и за последние 3 года, могу сказать с полной уверенностью -- стало лучше, результат намного качественней и гораздо быстрее достигается. Мне вообще не доставляет прыгать туда-сюда между схемой базы данных и проектом приложения, особенно если система сложная. Я работаю с классами, и сам решаю в какую иерархию и как они должны выстраиваться, а не какой-то генератор.

codearticles.ruПрофит в том, что я избавлен 100% от рутины и ручного кодирования. Меньшее число пунктов вовсе не означает, что задачу ты решишь быстрее и проще. С этим согласен?

От какой рутины ты избавлен? От того, что ты грубо говоря классы создашь в дизайнере базы данных? Иерархию объектов как будет строить?

Например, у меня есть:

public class Profile {}

и парочку

public class ClientProfile {}
public class LeadProfile {}

как ты получишь такую иерархию из базы данных?

одной кнопкой?


codearticles.ruобычного перепуга. За сколько накидаешь мне вот такой концепт из пару десятков таблиц? Я сделаю это 2 минуты.

В дизайнере базы данных? Насмешил.


codearticles.ruТо есть эту задачу можно поручить хоть обезьяне. Во-вторых, куда приятнее драг-н-дропом набрасывать схему, чем сидеть потеть писать говнокод, тестировать его, снова писать.

Юнит-тесты, это не про тебя, да? У нас CI с покрытием, близким к 100% на выпуске. Как это согласуется с клацанием мышкой, не понимаю.

codearticles.ruДа какая разница, кто куда подключается. Схема может прийти откуда угодно, от заказчика например. С ней можно делать что угодно, в том числе и генерировать проксю. И это прекрасно. А у тебя что не изменение, то ныряй снова в гавнокод. В топку.

Схема приложения сложней, чем схема базы данных. У нас всё в одном пакете, на одной модели, в одной вотчине, и нет зависимости ни от какой базы и менеджера баз. Задачи чётко разделены. Все манипуляции со схемами и UML точно также применимы и в отношении кода, даже более того, для кода они подходят гораздо лучше.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758145
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕсли у тебя изначально базу данных делает кто-то другой, да ещё и вперёд батьки, о чём вообще спор? Code First подразумевает, что никакой базы данных ещё нет. И до какого-то момента она даже и не нужна. Более того, приложение может работать вообще без базы данных, до тех пор пока не будет сгенерирована и подключена. В этом вся сольПредставляю эту "базу данных", которую создаст "упоротый генератор" по коду-фест. Неужели лучше, чем архитектор?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758147
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterhVosttЕсли у тебя изначально базу данных делает кто-то другой, да ещё и вперёд батьки, о чём вообще спор? Code First подразумевает, что никакой базы данных ещё нет. И до какого-то момента она даже и не нужна. Более того, приложение может работать вообще без базы данных, до тех пор пока не будет сгенерирована и подключена. В этом вся сольПредставляю эту "базу данных", которую создаст "упоротый генератор" по коду-фест. Неужели лучше, чем архитектор?

Database First и Code First это два совершенно разных подхода к разработке ПО. В одном случае, сначала архитектор проектирует базу данных, затем пишется код. В другом случае сначала пишется код, а реальная модель получается исходя из особенностей реализации и концептуальной модели. Единственно правильного подхода среди них нет. Мы применяем оба, но гораздо чаще Code First, когда заранее на 100% солидную модель спроектировать невозможно в виду того, что разработка ведётся по методологии CI, с наращиванием функционала. Экономически Code First гораздо выгоднее (чаще всего), но для некоторых задач применяется классический подход. Вот и всё.

Любые заявления что тот или иной способ является единственно верным и правильным, выдают полнейшее дилетанство заявителя, не способность осилить больше одного подхода, и летят в топку.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758152
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Приложение - это все фигня. Его могут выкинуть/переписать уже завтра. А бизнесс-данные будут жить вечно, пока существует бизнес. И цена ошибки неправильно спроектированной БД несопоставимо выше, чем приложения. Из-за криво спороектированной БД и код получасется кривым. На что разрабы сетуют: ну что мы можем сделать? так было спроектированно. Часто приходилось видеть.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758167
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterhVostt,

Приложение - это все фигня. Его могут выкинуть/переписать уже завтра. А бизнесс-данные будут жить вечно, пока существует бизнес. И цена ошибки неправильно спроектированной БД несопоставимо выше, чем приложения. Из-за криво спороектированной БД и код получасется кривым. На что разрабы сетуют: ну что мы можем сделать? так было спроектированно. Часто приходилось видеть.

Универсального рецепта не существует. О CodeFirst говорю не по наслышке, разработано, выпущено и продано уже больше десятка бизнес-приложений, компания получила прибыль, разработчики получили и продолжают получать свою достойную зарплату, клиенты получили результат, которым вполне довольны. Часть ПО находится на сопровождении, часть ПО продолжает развиваться согласно поступающим требованиям, никто не не жаловался. Есть проекты, разработанные и со стороны данных, это data-driven приложения с заранее чёткой, продуманной структурой данных, не подверженной изменениям, с повышенными критериями к производительности и целостности. Так что говорю как есть. Можно почитать о том как надо, а я говорю как есть.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758171
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterИз-за криво спороектированной БД и код получасется кривым.

Вот именно поэтому Code First зачастую лучше, схема изначально лишена избыточности, и содержит только то, что реально используется и будет использоваться и с учётом того, как это будет использоваться.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758200
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttЕсли у тебя изначально базу данных делает кто-то другой, да ещё и вперёд батьки, о чём вообще спор?
Да какая разница, кто делает. Плюсы в поддержке и развитии очень существенны. Code First - для любителей рутинного кодирования, Database First - для кнопочников и халявщиков. Я отношусь ко второй категории. Нравится много и нудно писать - я не против.

hVosttНиче не надо. Изменил класс и продолжил разработку. Когда надо, запустится либо автоматическая миграция, либо создашь миграцию одной командой в нугет. В чем проблемы-то? Главное, всё под контролем.
Ну так а чем это отличается от изменениях в БД с последующим обновлением схемы в edmx? Та же автоматика. Только без ручного кодирования.

hVosttПроблема в высокой связности. Зачем мне на этапе разработки возиться с бекапами? Я вообще-то с классами работаю. Таблицы в базе данных -- это всего лишь способ хранения, зачем ходить задом наперёд? Раньше так и разрабатывали приложения, сам активно в таком процессе учавствовал. Сначала пилится схема БД, потом от неё все пляшут. Сейчас наоборот и за последние 3 года, могу сказать с полной уверенностью -- стало лучше, результат намного качественней и гораздо быстрее достигается. Мне вообще не доставляет прыгать туда-сюда между схемой базы данных и проектом приложения, особенно если система сложная. Я работаю с классами, и сам решаю в какую иерархию и как они должны выстраиваться, а не какой-то генератор.
Никакой связности. Бэкап никоим образом не связан с проектом. Нужна база - есть 2 пути, бэкап или edmx => database. Я выбираю первый вариант, он прозрачен и универсален. Я работаю не только с классами, я с чем только не работаю. Пытаться мир аппроксимировать в классы - утопия. Всё сложнее. Прыгать никуда не надо, просто делай свою работу. Если ты далек от БД, пусть этим занимаются DB девелоперы. А ты честно снимай кодогенерацию.

hVosttcodearticles.ruПрофит в том, что я избавлен 100% от рутины и ручного кодирования. Меньшее число пунктов вовсе не означает, что задачу ты решишь быстрее и проще. С этим согласен?
От какой рутины ты избавлен? От того, что ты грубо говоря классы создашь в дизайнере базы данных? Иерархию объектов как будет строить?
От самой обычно рутины. Я не пишу классы, я накликиваю объекты. Да что ты привязался со своей иерархией, это было сделано еще черти знает когда http://msdn.microsoft.com/en-us/library/vstudio/cc716683(v=vs.100).aspx

hVosttкак ты получишь такую иерархию из базы данных? одной кнопкой?
Выше ссылка. Зачем одной кнопкой? Кто мешает допилить схему в дизайнере под свои нужды? Ты, вообще, работал хоть раз с edmx? Мне кажется, что не работал.

hVosttcodearticles.ruобычного перепуга. За сколько накидаешь мне вот такой концепт из пару десятков таблиц? Я сделаю это 2 минуты.
В дизайнере базы данных? Насмешил.
enterprise architect => db => classes, рассказывать, что такое uml и enterprise architect?

hVosttcodearticles.ruТо есть эту задачу можно поручить хоть обезьяне. Во-вторых, куда приятнее драг-н-дропом набрасывать схему, чем сидеть потеть писать говнокод, тестировать его, снова писать.
Юнит-тесты, это не про тебя, да? У нас CI с покрытием, близким к 100% на выпуске. Как это согласуется с клацанием мышкой, не понимаю.
Причем тут модульное тестирование и прокси классы БД? Что ты там тестировать собрался? Пустые свойства?

hVosttcodearticles.ruДа какая разница, кто куда подключается. Схема может прийти откуда угодно, от заказчика например. С ней можно делать что угодно, в том числе и генерировать проксю. И это прекрасно. А у тебя что не изменение, то ныряй снова в гавнокод. В топку.
Схема приложения сложней, чем схема базы данных. У нас всё в одном пакете, на одной модели, в одной вотчине, и нет зависимости ни от какой базы и менеджера баз. Задачи чётко разделены. Все манипуляции со схемами и UML точно также применимы и в отношении кода, даже более того, для кода они подходят гораздо лучше.
А причем тут менеджеры баз? У меня такие же классы, как у тебя, но кодогенеренные. edmx решает все проблемы, никаких сложностей нету. Куда они там лучше подходят - это твои фантазии. Те же яйца, только нахаляву.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758249
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruДа какая разница, кто делает. Плюсы в поддержке и развитии очень существенны. Code First - для любителей рутинного кодирования, Database First - для кнопочников и халявщиков. Я отношусь ко второй категории. Нравится много и нудно писать - я не против.

Ну ты как обычно, в своём репертуаре, научился пользоваться молотком, и пошёл забивать им всё подрят: и гвозди, и шурупы, и сваи

Дело не любви или нелюбви к кодированию, а в задачах и способах их решения. Для одних задач больше подходит DB/F, для других C/F, также многое зависит от исходных данных, и конечных требований. Практика и опыт разработки в компании показали, что с использованием Code First разработка ведётся в целом гораздо быстрее (экономически ощутимо я бы сказал). Не смотря на, как тебе почему-то кажется, "рутинное кодирование". С учётом таких факторов, как постоянные, развивающиеся изменения в требованиях, и командной разработки, Code First -- это то, что доктор прописал. Разработчикам не надо синхронизировать между собой модели баз данных, SQL-скрипты, схемы, и для десятков веток иметь по отдельной версии базы, превращая разработку в сплошной ад. EDMX плох тем, что со стороны контроля версий не даёт почти никакого контроля команде.

А так, если ты сидишь в своём кабинетике, не напрягаясь колбасишь в одиночку свои унылые сервисы, тогда генерируй ты там свои классы ради бога, гоняй модели туда-сюда, обратно, клацай мышкой, попивая кофеёк, никаких претензий

codearticles.ruЯ не пишу классы, я накликиваю объекты.

Любитель генераторов это видимо тебя ещё со времён WSDL торкнуло

codearticles.ruУ меня такие же классы, как у тебя, но кодогенеренные.

Ага. Канечно, такие же. Размечтался
А слабо иметь готовые наборы моделей, собирать из них целое, при этом иметь возможность доработки моделей без изменения базовых? И при этом всё будет генериться в одну базу с полноценными связями?

Типо так:

Подключили BaseUsers.edmx, BaseShop.edmx, BasePages.edmx, сделали нужные расширения
CustomUsers.edmx, CustomShop.edmx, CustomPages.edmx, добавили Project.Edmx и должно всё лечь в базу данных без гвоздей.

Смогёшь? Все BaseXXX лежат в отдельных сборках и мы должны иметь возможность поменять что-нибуть там и должно поменяться во всех проектах эксплуатирующих сборку?

Ну как? Кодогенерация по базе, это для малышей, освоивших мышку, но ничего более...
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758255
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruВыше ссылка. Зачем одной кнопкой? Кто мешает допилить схему в дизайнере под свои нужды? Ты, вообще, работал хоть раз с edmx? Мне кажется, что не работал.

Ну вот и начелось. Сначало надо пилить базу данных. Потом допиливать схему в дизайнере. Особый кайф, если схема охеренно большая конечно. И уже потом вот они почти как родные классы

Конечно я работал с edmx и довольно много.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758420
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruДа какая разница, кто делает. Плюсы в поддержке и развитии очень существенны. Code First - для любителей рутинного кодирования, Database First - для кнопочников и халявщиков. Я отношусь ко второй категории. Нравится много и нудно писать - я не против.
Ну ты как обычно, в своём репертуаре, научился пользоваться молотком, и пошёл забивать им всё подрят: и гвозди, и шурупы, и сваи
Так всё дело в том, что молоток универсальный, работает 100% и бесперебойно. Поди плохо? :)

hVosttДело не любви или нелюбви к кодированию, а в задачах и способах их решения. Для одних задач больше подходит DB/F, для других C/F, также многое зависит от исходных данных, и конечных требований.
Ну вот только не надо ля-ля, одни задачи, другие... Для всех задач будет внятен и применим DB/F. Как-то же мы жили во времена L2S и EF < 5 и ничего. Никаких поко, онли кодогенерация. А то одни задачи, другие. Не фантазируй!

hVosttПрактика и опыт разработки в компании показали, что с использованием Code First разработка ведётся в целом гораздо быстрее (экономически ощутимо я бы сказал). Не смотря на, как тебе почему-то кажется, "рутинное кодирование".
Сказки. В частных случаях "для пары табличек" оно будет одинаково, но для более громоздких схем твой вариант идет лесом. А когда у нас еще есть полноценная команда, db девелопер, dba и иже - жизнь СУБД и её схема от тебя вообще не зависит. Вот в таких случаях DB/F вообще незаменимый молоток.

hVosttРазработчикам не надо синхронизировать между собой модели баз данных, SQL-скрипты, схемы, и для десятков веток иметь по отдельной версии базы, превращая разработку в сплошной ад. EDMX плох тем, что со стороны контроля версий не даёт почти никакого контроля команде.
У разработчиков одна девелоперская БД, ничего синхронизировать не надо. Нажал обновил схему edmx и всё само обновилось. Магия! Контроль версий edmx отлично работает, всё есть в TFS, можно отследить любые изменения.

hVosttcodearticles.ruЯ не пишу классы, я накликиваю объекты.
Любитель генераторов это видимо тебя ещё со времён WSDL торкнуло
WSDL тем и чудесен, что есть схема, а значит есть и кодогенерация )) Именно поэтому за odata будущее, а чистый rest без схемы - унылое гавно. Хотя и съедобное

hVosttcodearticles.ruУ меня такие же классы, как у тебя, но кодогенеренные.
Ага. Канечно, такие же. Размечтался
А слабо иметь готовые наборы моделей, собирать из них целое, при этом иметь возможность доработки моделей без изменения базовых? И при этом всё будет генериться в одну базу с полноценными связями?
Батенька, инхеританс был сделан чёрти знает когда, теперь я понимаю, что с edmx ты реально не работал :) http://msdn.microsoft.com/en-us/data/jj618292.aspx

hVosttcodearticles.ruВыше ссылка. Зачем одной кнопкой? Кто мешает допилить схему в дизайнере под свои нужды? Ты, вообще, работал хоть раз с edmx? Мне кажется, что не работал.
Ну вот и начелось. Сначало надо пилить базу данных. Потом допиливать схему в дизайнере. Особый кайф, если схема охеренно большая конечно. И уже потом вот они почти как родные классы
А как ты хотел? Дополнительные фичи через дизайнер. Именно для этого он и сделан. Причем все изменения держат run custom tool, всё работает как часы.

hVosttКонечно я работал с edmx и довольно много.
Я этого не заметил
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758465
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruТак всё дело в том, что молоток универсальный, работает 100% и бесперебойно. Поди плохо? :)

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

codearticles.ruДля всех задач будет внятен и применим DB/F. Как-то же мы жили во времена L2S и EF < 5 и ничего. Никаких поко, онли кодогенерация. А то одни задачи, другие. Не фантазируй!

Как ты будешь обеспечивать версионность базы данных? Как дружить с системой контроля версий? Это ты не фантазируй, если в теме даже не разобрался, рассуждения у тебя поверхностные, с точки зрения знания только одного инструмента. Видимо ты с Code First толком не работал никогда, а также с системой контроля версий и в команде. Тогда твои пасы вполне понятны.

codearticles.ruВот в таких случаях DB/F вообще незаменимый молоток.

Я и не утверждал, что нет таких случаев, где именно DB/F будет уместен. Надо уметь пользоваться выбором, а не отметать всё, что не осилил с бараньей упёртостью.

codearticles.ruУ разработчиков одна девелоперская БД, ничего синхронизировать не надо. Нажал обновил схему edmx и всё само обновилось. Магия! Контроль версий edmx отлично работает, всё есть в TFS, можно отследить любые изменения.

Ты издеваешься чтоли? Команда разрабов, часть из них работает в отдельных ветках с разными версиями схем, один разраб добавил свои классы, другой свои. Как потом это всё смержить? Это раз. Потом, как откатиться на конкретную версию БД и перейти на другую в другой ветке? При чём не отходя от кассы? При чём с помощью команды, а не мышки (всё что делается мышкой при распределённой разработке, сразу отправляется лесом, в детский сад для детишек, только скрипты, только автомат!). С EDMX без прыганья как сайгак с бубном, это не реально обеспечить.

codearticles.ruБатенька, инхеританс был сделан чёрти знает когда, теперь я понимаю, что с edmx ты реально не работал :) http://msdn.microsoft.com/en-us/data/jj618292.aspx

Работал я с этим инхеритансом. Детская погремушка.

codearticles.ruА как ты хотел? Дополнительные фичи через дизайнер. Именно для этого он и сделан. Причем все изменения держат run custom tool, всё работает как часы.

Дизайнер для студентов и для тех, кто не способен осилить что-то большее. Это факт.

Ну и предлагаю почитать статейку http://www.itworld.com/development/405005/3-reasons-use-code-first-design-entity-framework

Опять же, я исхожу из того, что инструмент и способы решения надо выбирать исходя из задач, а не потому что "я только вот так вот умею и больше мне нечо не нада". Единоличники сразу идут в далёкое досвидание, где пилят свои маленькие проектики
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758562
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruТак всё дело в том, что молоток универсальный, работает 100% и бесперебойно. Поди плохо? :)
Плохо то, что освоив молоток, ты не способен освоить что-то ещё кроме молотка. Поэтому когда в руках молоток, всё вокруг является гвоздями
Молоток во всех его реинкарнациях был освоен еще тогда, когда гвозди под стол пешком ходили :) Молоток всё рос и крепчал. И сейчас это мощный удобный механизм, который позволяет с минимумом трудозатрат получить качественную картинку. Это цель.

hVosttКак ты будешь обеспечивать версионность базы данных? Как дружить с системой контроля версий?
Ууу как всё запущено... Ну если тебе букварь уже не помогает, то покури видео гайды
YouTube Video
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758718
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruУуу как всё запущено... Ну если тебе букварь уже не помогает, то покури видео гайды

Ты даже гайд толковый подобрать не можешь, какая-то тупорылая бредятина про управление БД из студии, написание SQL-ников вручную, и... ууууууааааауу!!! О_О вы только посмотрите, ааааааа, я написал SQL и создалась база данных!!!!!!! теперь её можно... барабанная дробь, да-да, вы не ошиблись, теперь её можно опубликовать на сервер!!! невероятно! ит из импоссибл! как долго этого мы ждали! ну наконец-то! трижды ура! салют! эгегей!, теперь то мы заживём!

Ты эту херобазу показывай старушкам у подъезда, они поржут

codearticles.ruОни зависят только от религии архитектора / разработчика. Не более. Не нужно тут прикидываться бочонком и прикрываться "выбором в зависимости от". Нету никакого выбора. Есть 2 ржавых гвоздя, один покрашен в зеленый цвет, другой в синий. Выбирай любой.

Вот не надо заливать. Ни от какой религии это не зависит, ты просто вкурить до сих пор не можешь.

codearticles.ruВ остальных случаях используем общую БД.

фейспалм. на кой хер эта возня с базами нужна? ты отличаешь разработку от профилирования? у нас на стендах разворачивается по тесту на каждую ветку через TeamCity, при чём никто ничего ручками не создаёт и никуда не лезет. делаешь пуш в ветку, тут же накатываются тесты, ПО, и база. нет никакой "общей" базы с которой работают все разработчики, это тупизна какая-то. более того, для каждой группы тестов создаётся база прям в памяти, туда же загоняются тестовые данные автоматом, тесты прогоняются, база в памяти умирает. нафиг эта шляпа из возни с edmx нам не упала.

codearticles.ruКакие откаты БД? Никаких откатов, DB девелопер добавил изменения, изменения приняли в edmx разработчики. Всё, работают дальше. Если нужен откат, DB девелопер вернул всё взад, девелоперы снова обновили edmx. Работают дальше. В чем проблема?

проблема в том, что у вас по ходу времени свободного дохера, а DB больше делать нечего, на каждый чих разработчика как последнее му**ло заниматься его базой данных. у нас версии баз данных накатываются/откатываются полностью автоматически, без какого-либо участия человека. edmx-разработчики.. у меня даже слов нет, это что-то новенькое

codearticles.ruА конкретнее?

Конкретней, это как если бы у тебя отобрали возможность писать код, и дали погремушку, где классы надо мышкой создавать в конструкторе типа легого для малых детишек. Так-то инструмент неплохой, и все задачи на нём решаются, но его использование в разы трудозатраней, чем схема на основе классов, так как из классов генерируются такие же красивые схемы (кому надо посмотреть) и возможностей на порядки больше. На порядки.

codearticles.ruДизайнер для умных людей, которые знают цену разработке и сопровождению.

К дизайнеру претензий никаких нет, претензии к людям, которые не могут ничего кроме дизайнера осилить, видимо это очень тяжело

codearticles.ruP.S. Особенно чудесен вариант uml => sql => edmx. Первый пункт пишет аналитик. Второй пункт получаем автоматом. Третий пункт получаем автоматом. Еще раз, слыхал что-то про Enterprise Architect? )

Ты явно попутал моделирование со схемой базы данных. uml => sql означает, что uml точат под sql, без учёта деталей реализации. Про EA мне сказки свои не рассказывай, никакого противоречия с CF нет, только у тебя в голове конкретная зацикленность на "кнопочной генерации". Плохого ничего в этом нет, и местами очень уместно, в длительной перспективе разработки эта погремушка накуй не нужна.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38758782
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruУуу как всё запущено... Ну если тебе букварь уже не помогает, то покури видео гайды
Ты даже гайд толковый подобрать не можешь, какая-то тупорылая бредятина про управление БД из студии, написание SQL-ников вручную, и... ууууууааааауу!!!
Во-первых, ты даже досмотреть по-человечески его не смог. А там показывается пример, где начальный проект генерится из готовой схемы. Это очень хороший старт проекта. Во-вторых, там можно в 2 стороны синхронизировать схемы, вычленять дифференсы. Это незаменимый продукт для db девелоперов. Во-вторых, пойдти куда нить в форум SQL и скажи им, что это "тупорылая бредятина". Тебя там с гавном смешают Это отличное решение, которое используют миллионы разработчиков для ведения проектов по базам данных.

hVosttТы эту херобазу показывай старушкам у подъезда, они поржут
Этой херобазой пользуются профессионалы, а не дилетанты, которые только что узнали о существовании подобных решений.

hVosttВот не надо заливать. Ни от какой религии это не зависит, ты просто вкурить до сих пор не можешь.
Твой право считать так, как тебе хочется. А я не заливаю, а говорю по факту as is.

hVosttфейспалм. на кой хер эта возня с базами нужна? ты отличаешь разработку от профилирования?
Что такое возня с базами, ты о чем? Каким боком тут упало профилирование? Тебя не в ту степь понесло, остановись.

hVosttу нас на стендах разворачивается по тесту на каждую ветку через TeamCity, при чём никто ничего ручками не создаёт и никуда не лезет. делаешь пуш в ветку, тут же накатываются тесты, ПО, и база. нет никакой "общей" базы с которой работают все разработчики, это тупизна какая-то.
Бизнес данные откуда берутся? Я тебе уже говорил, как делать версионить проект с БД, как делать схему, импорты, экспорты и бранчи. Всё в родной студии, всё в родном TFS. Выйди из сумрака уже.

hVosttболее того, для каждой группы тестов создаётся база прям в памяти, туда же загоняются тестовые данные автоматом, тесты прогоняются, база в памяти умирает. нафиг эта шляпа из возни с edmx нам не упала.
Какой-то кретинизм. Что-то создается, удаляется, само собой накатывается. У нас базы данных есть с миллиардами записей, есть с сотнями миллионов, на продакшене, на препродакшене, на тесте, на деве. Сколько лет я буду ждать, пока твоя магия мне там что-то нагенерит? Мне не нужно ничего генерить, всё уже есть - целостный бэкап. Им ведают DBA, им помогают если что DBD. Какие генерации баз, что ты там куришь?

hVosttпроблема в том, что у вас по ходу времени свободного дохера, а DB больше делать нечего, на каждый чих разработчика как последнее му**ло заниматься его базой данных. у нас версии баз данных накатываются/откатываются полностью автоматически, без какого-либо участия человека. edmx-разработчики.. у меня даже слов нет, это что-то новенькое
У нас не дохера свободного времени, у нас люди занимаются своей работой. На каждый чих никто ничего делать не будет. Сервера и СУБД выделяются по требованию и согласованию. Никто никакие чихи не делает, есть моя виртуальная девелоперская машина - сиди и пили. Есть другая девелоперская машина чисто под SharePoint - тоже самое. Во второй уже личная СУБД, почему так - я описал выше. Это специфика работы с SP. А то, что ты описываешь, какой-то эпический бред. Какие-то генерации баз, наполнение данными... Клиника.

hVosttcodearticles.ruА конкретнее?
Конкретней, это как если бы у тебя отобрали возможность писать код, и дали погремушку, где классы надо мышкой создавать в конструкторе типа легого для малых детишек. Так-то инструмент неплохой, и все задачи на нём решаются, но его использование в разы трудозатраней, чем схема на основе классов, так как из классов генерируются такие же красивые схемы (кому надо посмотреть) и возможностей на порядки больше. На порядки.
Ты ушел от ответа. Сначала ты сказал, что это детская погремушка. Теперь ты пишешь, что все задачи решаются. Всё продолжаешь бредить?
По поводу трудозатрат, я тебе выше описал кейс, я за 2 минуты получу edmx от работы аналитика и буду полноценно работать. Тебе понадобится несколько дней, чтобы воссоздать и протестировать рабочую модель. И это есть профит. И кстати, давно жду от тебя ответа по генерации поко классов по живой БД, но ты всё молчишь. Очевидно, что даже в теме с Code First ты не имеешь должного опыта. Открою тебе страшную тайну, VS 13 может генерировать поко классы прямо из живой БД. Учись, студент :)

hVosttcodearticles.ruДизайнер для умных людей, которые знают цену разработке и сопровождению.
К дизайнеру претензий никаких нет, претензии к людям, которые не могут ничего кроме дизайнера осилить, видимо это очень тяжело
Глупый человек вряд ли справится с дизайнером, потому что нужно понимать, что ты в нем делаешь. И почему ты решил, что дизайнером должны пользоваться только те, кто ничего не смыслит в Code First? Какое-то странное утверждение. Основанное на детских страхах?

hVosttТы явно попутал моделирование со схемой базы данных. uml => sql означает, что uml точат под sql, без учёта деталей реализации. Про EA мне сказки свои не рассказывай, никакого противоречия с CF нет, только у тебя в голове конкретная зацикленность на "кнопочной генерации". Плохого ничего в этом нет, и местами очень уместно, в длительной перспективе разработки эта погремушка накуй не нужна.
uml не точат по sql, что за глупости? Ты хоть раз писал классы в EA? :) Про длительную перспективу вообще поржал И автоматическую генерацию документации в топку? Ну да ты вообще крут. Пойди аналитикам это скажи, они плюнут тебе в лицо.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38759080
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruА там показывается пример, где начальный проект генерится из готовой схемы.

"готовая схема" откуда берётся? Инопланетяне доставляют что ли?

codearticles.ruВо-вторых, там можно в 2 стороны синхронизировать схемы, вычленять дифференсы. Это незаменимый продукт для db девелоперов.

Мда... Во-первых, дифференсы, которые ты там собрался вычленять изначально ущербные. Так как не отражают историю. В Code First вся история абсолютно чётко прослеживается по коду и хранится в базе, никаких "дифференсов" вычислять не нужно -- база накатывается и откатывается как по маслу до любой нужной версии. Вперёд и назад. Накуй эти диференсы нужны? Делать чтоли больше нечего, со схемой возиться?

codearticles.ruЭтой херобазой пользуются профессионалы, а не дилетанты, которые только что узнали о существовании подобных решений.

Ну-ну, всякий хряк своё болото хвалит

codearticles.ruБизнес данные откуда берутся? Я тебе уже говорил, как делать версионить проект с БД, как делать схему, импорты, экспорты и бранчи. Всё в родной студии, всё в родном TFS. Выйди из сумрака уже.

Ты наверное по собственному заблуждению думаешь, что версионить, это типа файлы лежат под контролем версий -- значит типа всё заверсионено? Как ты саму схему версионишь? Схема версии 1, схема версии 2... схема версии 100, схема версии 100-на-ветке-новая супер-фича? И чтобы можно было так:

Выбрал в контроле версий другую ветку, обновился до неё, запустил проект и всё заработало! Прога сама откатила или накатила текущую базу у девелопера (или создала новую, в зависимости от конфига)? И это возможность прямо из коробки, без каких-то сторонних инструментов, каких-то менеджеров баз данных, клацания мышкой, вычисления диффов и прочей херни?

codearticles.ruКакой-то кретинизм. Что-то создается, удаляется, само собой накатывается. У нас базы данных есть с миллиардами записей, есть с сотнями миллионов, на продакшене, на препродакшене, на тесте, на деве. Сколько лет я буду ждать, пока твоя магия мне там что-то нагенерит? Мне не нужно ничего генерить, всё уже есть - целостный бэкап. Им ведают DBA, им помогают если что DBD. Какие генерации баз, что ты там куришь?

При чём тут вообще твои базы с миллиардами записями? Да хоть квантиллион записей, абсолютно фиолетово. До фанаря. Пофигу вообще сколько там записей на деве. Речь идёт именно о разработке, для разработки с Code First достаточно открыть проект в студии, обновляйся из любой ветки и открывай -- это будет сразу же работать. Без всяких шатаний с бекапами, ты же сначала поимеешь всем мозг со своим бекапом, потом поимеешь мозг DBA, если надо изменить схему, потом задрочишь всех, что всем надо обновить базу данных. Я же говорю, вы лодыри там и лентяи, не способные осилить более одного инструмента. Как в своё время придрочились к своему любимому дизайнеру так теперь хрен оторвёшь, ещё и с пеной у рта будете доказывать, что вот именно вот так правильно и миллиарды миллионов именно так делают, делали и будут делать до посинения

Старпёры, что с вас взять

codearticles.ruСервера и СУБД выделяются по требованию и согласованию.

При чём тут твои сервера и СУБД, ещё раз спрашиваю? Я тебе говорю, что для разработки Code First этого не нужно. Проект разворачивается грубо говоря с открытием проекта в студии. Всё. И пошёл кодить. На носу дедлайн. Вы похоже про такое понятие как сроки, даже не слыхали. Пилите там вечность одно и тоже. Миллиарды записей же, как ещё-то?

codearticles.ruПо поводу трудозатрат, я тебе выше описал кейс, я за 2 минуты получу edmx от работы аналитика и буду полноценно работать. Тебе понадобится несколько дней, чтобы воссоздать и протестировать рабочую модель.

Не верно. Я не буду воссоздавать модель, принцип работы с Code First совершенно отличается от DB/First. С DB/First ты имеешь на руках полноценную базу данных, и пилишь поверх неё приложение. С Code First, полноценной базы данных нет, нет и схемы, есть концепция, и постоянно изменяющиеся/уточняющиеся требования, разработка ведётся итерациями, на каждой итерации добавляются только те классы, что нужны, а не +100500 всей модели, которой ещё даже нет. Пойми ты уже это наконец.

codearticles.ruИ кстати, давно жду от тебя ответа по генерации поко классов по живой БД, но ты всё молчишь.

Когда есть готовая БД, мы используем Database First. Зачем я в этом случае буду писать поко руками?

codearticles.ruИ почему ты решил, что дизайнером должны пользоваться только те, кто ничего не смыслит в Code First?

Ты считаешь, что DB/F и C/F -- это просто разные способы достижения одного результата. Ты ошибаешься, потому что для DB/F и C/F полностью подходы и метода разные. Это не просто способы получения классов (ручками или по модели). Но ты этого не хочешь понять, упёрся рогом и всё тут.

Если есть способ что-то автоматизировать (генерация там, получение схем из моделей и т.д.), я выбираю этот способ. Но C/F, это не "ручная" замена того, что можно савтоматизировать. Это другой подход совершенно.

codearticles.ruТы хоть раз писал классы в EA? :) Про длительную перспективу вообще поржал И автоматическую генерацию документации в топку?

При чем тут твои аналитеки? При чём тут ЕА, как это к делу относится? Ты откуда свои edmx получаешь? Речь шла о сравнении Database First vs. Code First, а тебя понесло в сторону моделирования. Ты чего там употребляешь?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38759088
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru,

И если уж ты так вцепился в своё моделирование, что хрен оторвёшь, то да будет тебе известно, что поко-классы из модели можно также генерить, как и схему базы данных. Только ты в этом случае проходишь через цепочку uml -> sql -> edmx -> generated classes, а в случае с poco цепочка выглядит так: uml -> poco classes. И опять же спрашиваю, где профит?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38759117
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruА там показывается пример, где начальный проект генерится из готовой схемы.
"готовая схема" откуда берётся? Инопланетяне доставляют что ли?
Ну вот, а говоришь знаешь, как аналитки колбасят объекты на uml в EA. Ну что, опять двойка...
Да и не важно тебе знать, откуда и что берется. Она есть и работает. Твоя задача обвязать её в ORM. Сиди и пили.

hVosttcodearticles.ruВо-вторых, там можно в 2 стороны синхронизировать схемы, вычленять дифференсы. Это незаменимый продукт для db девелоперов.
Мда... Во-первых, дифференсы, которые ты там собрался вычленять изначально ущербные. Так как не отражают историю.
Ты там чего куришь, историк? Я тебе уже 10 раз сказал, как ведется история в DB проектах. Повторить? Еще раз - там есть история, и дифференсов, и не дифференсов.

hVosttНакуй эти диференсы нужны? Делать чтоли больше нечего, со схемой возиться?
Есть дев сервер, есть тестовый сервер, есть препродакшен сервер, есть продакшен сервер. Дифференсы между этими узалами накатываются dba или dbd. В последним двум тебя на пушечный выстрел не допустят. И все твои игрушки из CF уйдут прямиком в лес. Ну если ты только не Греф и твоя контора не СБ. Тогда да, тебе дадут (при желании) писать селекты в продуктив

hVosttcodearticles.ruЭтой херобазой пользуются профессионалы, а не дилетанты, которые только что узнали о существовании подобных решений.
Ну-ну, всякий хряк своё болото хвалит
О, у кого-то просветление начинается :)

hVosttcodearticles.ruБизнес данные откуда берутся? Я тебе уже говорил, как делать версионить проект с БД, как делать схему, импорты, экспорты и бранчи. Всё в родной студии, всё в родном TFS. Выйди из сумрака уже.

Ты наверное по собственному заблуждению думаешь, что версионить, это типа файлы лежат под контролем версий -- значит типа всё заверсионено? Как ты саму схему версионишь? Схема версии 1, схема версии 2... схема версии 100, схема версии 100-на-ветке-новая супер-фича? И чтобы можно было так:

Выбрал в контроле версий другую ветку, обновился до неё, запустил проект и всё заработало! Прога сама откатила или накатила текущую базу у девелопера (или создала новую, в зависимости от конфига)? И это возможность прямо из коробки, без каких-то сторонних инструментов, каких-то менеджеров баз данных, клацания мышкой, вычисления диффов и прочей херни?
Я тебе объяснил уже, как схему версионить. Открой db проект и разберись сам. Там всё просто, поймет даже блондинка. Видео даже показал. Полноценный контроль версий, такой же как у тех же cs файлов. Не тупи. Да, можно откатиться до нужного бранча или взять чекин за нужную дату. Всё как в лучших домах Парижа. Что ж ты такой непонятливый... Вместо того, что бы спорить о том, в чем полный ноль, взял бы и разобрался в технологии.

hVosttcodearticles.ruКакой-то кретинизм. Что-то создается, удаляется, само собой накатывается. У нас базы данных есть с миллиардами записей, есть с сотнями миллионов, на продакшене, на препродакшене, на тесте, на деве. Сколько лет я буду ждать, пока твоя магия мне там что-то нагенерит? Мне не нужно ничего генерить, всё уже есть - целостный бэкап. Им ведают DBA, им помогают если что DBD. Какие генерации баз, что ты там куришь?
При чём тут вообще твои базы с миллиардами записями? Да хоть квантиллион записей, абсолютно фиолетово. До фанаря. Пофигу вообще сколько там записей на деве. Речь идёт именно о разработке, для разработки с Code First достаточно открыть проект в студии, обновляйся из любой ветки и открывай -- это будет сразу же работать. Без всяких шатаний с бекапами, ты же сначала поимеешь всем мозг со своим бекапом, потом поимеешь мозг DBA, если надо изменить схему, потом задрочишь всех, что всем надо обновить базу данных. Я же говорю, вы лодыри там и лентяи, не способные осилить более одного инструмента. Как в своё время придрочились к своему любимому дизайнеру так теперь хрен оторвёшь, ещё и с пеной у рта будете доказывать, что вот именно вот так правильно и миллиарды миллионов именно так делают, делали и будут делать до посинения
Какой-то поток воспаленного воображения. Ничего не понял. Еще раз, мне нужна в деве база из миллиарда записей в таблицах. Какой мне нужно открыть проект в студии и что там мне автоматически даст эту схему и данные? Какая ветка? Причем тут сами бизнес данные? Версионится схема, а не данные.

hVosttСтарпёры, что с вас взять
От феерических воплей мелюзги вообще оторопь берет

hVosttcodearticles.ruСервера и СУБД выделяются по требованию и согласованию.
При чём тут твои сервера и СУБД, ещё раз спрашиваю? Я тебе говорю, что для разработки Code First этого не нужно. Проект разворачивается грубо говоря с открытием проекта в студии. Всё. И пошёл кодить. На носу дедлайн. Вы похоже про такое понятие как сроки, даже не слыхали. Пилите там вечность одно и тоже. Миллиарды записей же, как ещё-то?
Как это не нужно? Мне и команде нужно это всё. Один занимается одним, другой - другим, третий - третим. И все работают в общей песочнице, не выходя от кассы. И даже если ты что-то накосячишь у другого, большая вероятность, что это заметят сразу же и выкатят тебе в бубен

hVosttcodearticles.ruПо поводу трудозатрат, я тебе выше описал кейс, я за 2 минуты получу edmx от работы аналитика и буду полноценно работать. Тебе понадобится несколько дней, чтобы воссоздать и протестировать рабочую модель.
Не верно. Я не буду воссоздавать модель, принцип работы с Code First совершенно отличается от DB/First. С DB/First ты имеешь на руках полноценную базу данных, и пилишь поверх неё приложение. С Code First, полноценной базы данных нет, нет и схемы, есть концепция, и постоянно изменяющиеся/уточняющиеся требования, разработка ведётся итерациями, на каждой итерации добавляются только те классы, что нужны, а не +100500 всей модели, которой ещё даже нет. Пойми ты уже это наконец.
В Code First тоже нужна полноценная БД, иначе как же ты будешь тестировать свои поделки? Да у тебя банально может быть схема битая или косяки в коде. Только упоротый идиот пишет Code First без реальной базы Code First поверх святого духа ))

hVosttcodearticles.ruИ кстати, давно жду от тебя ответа по генерации поко классов по живой БД, но ты всё молчишь.
Когда есть готовая БД, мы используем Database First. Зачем я в этом случае буду писать поко руками?
Ты читаешь каким местом? :) Я говорю, что если есть готовая БД, то можно так же использовать Code First. Классы генерируются автоматом по схеме БД. По необходимости уже допиливаются руками. Колоссальный труд скипается. Мне не понятно, зачем тебе тогда Database First?

hVosttcodearticles.ruИ почему ты решил, что дизайнером должны пользоваться только те, кто ничего не смыслит в Code First?
Ты считаешь, что DB/F и C/F -- это просто разные способы достижения одного результата. Ты ошибаешься, потому что для DB/F и C/F полностью подходы и метода разные. Это не просто способы получения классов (ручками или по модели). Но ты этого не хочешь понять, упёрся рогом и всё тут.
Да, DB/F и C/F -- это просто разные способы достижения одного результата. И никак иначе. Про "подходы", "суть", "идеологию", "транспарентность" и прочую "трансцендентную кулинарию" не надо задвигать. Это всё те же яйца.

hVosttЕсли есть способ что-то автоматизировать (генерация там, получение схем из моделей и т.д.), я выбираю этот способ. Но C/F, это не "ручная" замена того, что можно савтоматизировать. Это другой подход совершенно.
Ага, вообще с другой планеты Самому не смешно?


hVosttcodearticles.ruТы хоть раз писал классы в EA? :) Про длительную перспективу вообще поржал И автоматическую генерацию документации в топку?
При чем тут твои аналитеки? При чём тут ЕА, как это к делу относится? Ты откуда свои edmx получаешь? Речь шла о сравнении Database First vs. Code First, а тебя понесло в сторону моделирования. Ты чего там употребляешь?
Ну как это причем аналитики? Их труд можно использовать с умом. Для этого есть твоя нелюбимая кодогенерация. Открою тебе секрет, в EF можно не только SQL схему генерить, он может тебе uml диаграмму вообще в C# классы выплюнуть. О как. А edmx получаю из БД, откуда ж еще. А как и кто мне эту БД сделает, не суть.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38759118
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ru,
И если уж ты так вцепился в своё моделирование, что хрен оторвёшь, то да будет тебе известно, что поко-классы из модели можно также генерить, как и схему базы данных. Только ты в этом случае проходишь через цепочку uml -> sql -> edmx -> generated classes, а в случае с poco цепочка выглядит так: uml -> poco classes. И опять же спрашиваю, где профит?
Так профит в том, что эти кодогенеренные поко не годятся для Entity. Понимаешь о чем я?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38760326
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruНу вот, а говоришь знаешь, как аналитки колбасят объекты на uml в EA. Ну что, опять двойка...
Да и не важно тебе знать, откуда и что берется. Она есть и работает. Твоя задача обвязать её в ORM. Сиди и пили.

То о чём ты говоришь, очень напоминает умные разглагольствования алкаша Васи о геополитике. Какие аналитики? Чего они там у тебя колбасят? Прекращай нести бредятину в массы.

codearticles.ruЯ тебе объяснил уже, как схему версионить. Открой db проект и разберись сам. Там всё просто, поймет даже блондинка. Видео даже показал. Полноценный контроль версий, такой же как у тех же cs файлов. Не тупи. Да, можно откатиться до нужного бранча или взять чекин за нужную дату. Всё как в лучших домах Парижа. Что ж ты такой непонятливый... Вместо того, что бы спорить о том, в чем полный ноль, взял бы и разобрался в технологии.

Где, там? Что у тебя за "там" такой, всёобъясняющий? Какой ещё нахрен DB проект? Есть проект приложения, в нём у тебя твои edmx-ы, какой DB-проект, ты о чём??? И как это связано с независимостью от СУБД? А если в один прекрасный момент всё надо будет затолкать в монгу? Этот момент конечно вызывает много вопросов, но факт остаётся фактом, твоими погремушками в этом случае можно будет только зад подтереть.

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

Вот именно, дошло наконец. На кой ты мне тут тогда про свои миллиарды записей чесал? К чему это вообще было сказано?

А на счёт проекта в студии, не знаю мож ты и не программист вовсе, а программисту проекта для студии будет достаточно, чтобы продолжить разработку. Ему не нужны ни какие-то левые хрен пойми для чего DB-проекты, никакие скрипты, убогие дифференсы, доступы к каким-то серверам с базами данных, мозгоклюёство с ДБА и прочеми товарищами. Он просто берёт и разрабатывает. Появилось требование: у записи клиента должны быть ещё хобби. Вчера небыло такого требования, а сегодня появилось, и надо очень быстро это прототипировать и показать. Добавляется класс ClientHobby, и сразу получаем: связи, миграцию, хистори, живой, рабочий код, результат которого можно тут же показывать клиенту, и решать что делать дальше. Это бизнес, сынок. Деньги платят за результат, а не за упёртое мозгоёпство, когда какой-то умник когда-то там решил, что надо делать "вот так" и не иначе.

codearticles.ruТы читаешь каким местом? :) Я говорю, что если есть готовая БД, то можно так же использовать Code First. Классы генерируются автоматом по схеме БД. По необходимости уже допиливаются руками. Колоссальный труд скипается. Мне не понятно, зачем тебе тогда Database First?

Это ты непонятно каким местом читаешь. Повторю, если не доходит. Если имеется готовая БД, то использовать Code First не нужно, это тупо бессмысленно. Или ты специально дурака врубаешь на полную катушку? Code First -- это дословно, "СНАЧАЛО КОД", но ты продолжаешь долбиться головой абстену убеждая себя в наивной глупости, что дескать это тоже самое, что и DB/F, только классы пишутся руками. В принципе мне-то всё равно, ты можешь думать так, никто не запрещает. У нас свободомыслие как никак

codearticles.ruДа, DB/F и C/F -- это просто разные способы достижения одного результата. И никак иначе. Про "подходы", "суть", "идеологию", "транспарентность" и прочую "трансцендентную кулинарию" не надо задвигать. Это всё те же яйца.

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

C/F это совершенно другой подход. И говорю это не с теоретической точки зрения,а вполне практической. Можешь не соглашаться, но компания на этом зарабатывает и вполне неплохо. Никто не занимается дебилизмом, описывая готовую базу данных руками. Code First применяется тогда, когда базы данных нет, нет модели базы данных, есть общая концептуальная модель, концепция и вектор развития.

Аналитеков, гадающие на кофейной гуще или сотрудничающие с гадалками на тему того, чтоже понадобиться клиенту завтра, у нас нет.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38760884
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruНу вот, а говоришь знаешь, как аналитки колбасят объекты на uml в EA. Ну что, опять двойка...
Да и не важно тебе знать, откуда и что берется. Она есть и работает. Твоя задача обвязать её в ORM. Сиди и пили.
То о чём ты говоришь, очень напоминает умные разглагольствования алкаша Васи о геополитике. Какие аналитики? Чего они там у тебя колбасят? Прекращай нести бредятину в массы.
Я не знаю, что там тебе и кого напоминает, но геополитики никакой нет. Есть банальное владение uml схемой и классами, которые ведутся аналитиком в EA.

hVosttcodearticles.ruЯ тебе объяснил уже, как схему версионить. Открой db проект и разберись сам. Там всё просто, поймет даже блондинка. Видео даже показал. Полноценный контроль версий, такой же как у тех же cs файлов. Не тупи. Да, можно откатиться до нужного бранча или взять чекин за нужную дату. Всё как в лучших домах Парижа. Что ж ты такой непонятливый... Вместо того, что бы спорить о том, в чем полный ноль, взял бы и разобрался в технологии.
Где, там? Что у тебя за "там" такой, всёобъясняющий? Какой ещё нахрен DB проект? Есть проект приложения, в нём у тебя твои edmx-ы, какой DB-проект, ты о чём??? И как это связано с независимостью от СУБД? А если в один прекрасный момент всё надо будет затолкать в монгу? Этот момент конечно вызывает много вопросов, но факт остаётся фактом, твоими погремушками в этом случае можно будет только зад подтереть.
Там - это в проекте. Обычный такой "нахрен" DB проект. Одень очки и поюзай. В этом проекте нет никаких edmx-ов, накой они там? Ты не знаешь, как ведутся DB проекты - я тебе объяснил, как это делается. Какое отношение edmx имеет к db проекту? Правильно, вообще никакого. Если надо будет затолкать монгу, значит не будешь использовать такой вид проекта по причине того, что он не поддерживает такой тип БД. В чем проблема? Погремушки у тебя в воспаленном воображении, а db проект - мощная крутая штука, которую не использует только ленивый (или упоротый).

hVosttcodearticles.ruКакой-то поток воспаленного воображения. Ничего не понял. Еще раз, мне нужна в деве база из миллиарда записей в таблицах. Какой мне нужно открыть проект в студии и что там мне автоматически даст эту схему и данные? Какая ветка? Причем тут сами бизнес данные? Версионится схема, а не данные.
Вот именно, дошло наконец. На кой ты мне тут тогда про свои миллиарды записей чесал? К чему это вообще было сказано?
В чем смысл твоего вопроса? Какая-то шизофрения у тебя. Я задаю тебе вопрос про миллиарды записей. А ты мне отвечаешь "Вот именно, дошло наконец. На кой ты мне тут тогда про свои миллиарды записей чесал?" Ты пишешь посты ради по формуле чем больше, тем лучше? Еще раз, жду ответа на мой вопрос. Я внятно сформулировал его?

hVosttДобавляется класс ClientHobby, и сразу получаем: связи, миграцию, хистори, живой, рабочий код, результат которого можно тут же показывать клиенту, и решать что делать дальше. Это бизнес, сынок. Деньги платят за результат, а не за упёртое мозгоёпство, когда какой-то умник когда-то там решил, что надо делать "вот так" и не иначе.
Какой ClientHobby, какая миграция? Если мне нужна таблица, я её создам в БД и обновлю edmx, всё. Создадутся и связи. Зачем мне миграции? А дельта схемы берется из db проекта и мержится, если надо. Причем, это всё версионно.

hVosttcodearticles.ruТы читаешь каким местом? :) Я говорю, что если есть готовая БД, то можно так же использовать Code First. Классы генерируются автоматом по схеме БД. По необходимости уже допиливаются руками. Колоссальный труд скипается. Мне не понятно, зачем тебе тогда Database First?
Это ты непонятно каким местом читаешь. Повторю, если не доходит. Если имеется готовая БД, то использовать Code First не нужно, это тупо бессмысленно.
Почему бессмысленно? У тебя в студии есть возможность сгенерировать честные поко. Вот я и спрашиваю, какая тебе разница, есть база или её нет? У тебя нарушено восприятие информации, я уже раза 3 задал тебе этот вопрос. Но ты продолжает нести какую-то чушь, мол если есть база, значит CF не нужно. Ты укурен?

hVosttИли ты специально дурака врубаешь на полную катушку? Code First -- это дословно, "СНАЧАЛО КОД", но ты продолжаешь долбиться головой абстену убеждая себя в наивной глупости, что дескать это тоже самое, что и DB/F, только классы пишутся руками. В принципе мне-то всё равно, ты можешь думать так, никто не запрещает. У нас свободомыслие как никак
Code First - "сначало код", и что? Тебе сгенерировали поко, выслали по почте. У тебя нету базы. У тебя есть поко. Ну и? Сначала код. А во-вторых, чем противоречит "сначало код" уже созданной БД? Только названием? Ну можно тогда убить себя об стену, чтобы не было страхов.

hVosttcodearticles.ruДа, DB/F и C/F -- это просто разные способы достижения одного результата. И никак иначе. Про "подходы", "суть", "идеологию", "транспарентность" и прочую "трансцендентную кулинарию" не надо задвигать. Это всё те же яйца.
Нет. Можно, конечно писать классы руками по готовой модели базы данных, если делать-то больше нехрен. Вперёд
Я тебе десятый раз говорю, что не нужно писать руками классы по готовой базе. Ты можешь сгенерить поко и использовать их в CF. И продолжать развивать дальше проект. Это ничем не отличается от того, если бы ты изначально долго и упорно создавал классы, генерил БД, развивал проект. Те же яйца, только вид сбоку. Но кролики неофиты этого не понимают

hVosttC/F это совершенно другой подход.
Да уж конечно. Инопланетно-космический

hVosttИ говорю это не с теоретической точки зрения,а вполне практической. Можешь не соглашаться, но компания на этом зарабатывает и вполне неплохо. Никто не занимается дебилизмом, описывая готовую базу данных руками. Code First применяется тогда, когда базы данных нет, нет модели базы данных, есть общая концептуальная модель, концепция и вектор развития.
Мне плевать кто там и сколько зарабатывает. Я тебе говорю о том, что это два абсолютно монопенисуальных способа заюзать ORM Entity. Отличающийся лишь тем, что в одном случае есть дизайнер, который избавляет тебя от ручного задротства. И всё. Эти поко, к примеру, в том же хибере ты не сможешь использовать, так что идеология CF ака кросс database support идет прямиком в топку.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38760961
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЕсть банальное владение uml схемой и классами, которые ведутся аналитиком в EA.

Ты случайно архитектора с аналитиком не перепутал? А стоматологи у вас тоже участвуют?

codearticles.ruКакое отношение edmx имеет к db проекту? Правильно, вообще никакого.

Ну раз никакого, зачем тогда о них говорить? Давай ещё приплетём вид и цвет фломастеров, которые используются для митингов и набросков? Тем более я ничего против дб проектов не имею, есть задачи, где они нужны, но это к обсуждаемому вопросу имеет весьма посредственное отношение. Как я уже сказал, если впереди база, то используется подход Database First и точка.

codearticles.ruКакая-то шизофрения у тебя. Я задаю тебе вопрос про миллиарды записей.

Зачем миллиарды записей для разработки? Или вы, бедные, не умеете тестовые данные генерить? Могу научить за отдельную плату

codearticles.ruЕсли мне нужна таблица, я её создам в БД и обновлю edmx, всё. Создадутся и связи. Зачем мне миграции? А дельта схемы берется из db проекта и мержится, если надо. Причем, это всё версионно.

Хм... А enum-ы тоже генерятся из DB-проекта? И вообще, бред ты несёшь оголтелый. Сразу видно полное отсутствие опыта CI разработки. Полнейшее.

codearticles.ruПочему бессмысленно? У тебя в студии есть возможность сгенерировать честные поко. Вот я и спрашиваю, какая тебе разница, есть база или её нет? У тебя нарушено восприятие информации, я уже раза 3 задал тебе этот вопрос. Но ты продолжает нести какую-то чушь, мол если есть база, значит CF не нужно. Ты укурен?

Откуда ты собрался "генерировать" поко, если у тебя нет базы? Кто тут ещё укурен???

codearticles.ruCode First - "сначало код", и что? Тебе сгенерировали поко, выслали по почте. У тебя нету базы. У тебя есть поко. Ну и? Сначала код. А во-вторых, чем противоречит "сначало код" уже созданной БД? Только названием? Ну можно тогда убить себя об стену, чтобы не было страхов.

Какой может быть "сначала код", если у тебя сначала бд? С логикой-то всё в порядке, друг?
Сначала код, это означает, что базы ещё нет. Она создаётся по мере разработки. Нужен класс? Создал его, закодил функциональность. Нужно добавить функциональность? Добавил класс, закодил. И т.д. Потом уже база создаётся, когда потребуется. Не раньше. Этот подход уместен для многих задач. Есть задачи, где имеет смысл полностью спроектировать архитектуру приложения и данных, есть ТЗ для разработки ОТ и ДО. И такие проекты у нас тоже есть, там DB/F. Никакого противоречия. Мы выбираем наиболее подходящие задаче инструменты, а не один. Хотя если удалось осилить только один инструмент, все остальные можно автоматически признать ущербными, что ты и делаешь. ХЗ, зачем так упираться, так и скажи, ничё другого ты не умеешь, только так. Я пойму

codearticles.ruЯ тебе десятый раз говорю, что не нужно писать руками классы по готовой базе. Ты можешь сгенерить поко и использовать их в CF.

Нахрена? Ты бы ещё предложил генерить ассемблерный код, а затем делать ассемблерные вставки


codearticles.ruЭти поко, к примеру, в том же хибере ты не сможешь использовать, так что идеология CF ака кросс database support идет прямиком в топку.

Чой-то? Может просто у тебя опыта нет итерационной разработки с меняющимися требованиями на каждой итерации?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38761106
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruЕсть банальное владение uml схемой и классами, которые ведутся аналитиком в EA.
Ты случайно архитектора с аналитиком не перепутал? А стоматологи у вас тоже участвуют?
Ты дурак?

Профессия бизнес-аналитик (системный аналитик)

...Стоит отметить, что чаще остальных в вакансиях системных аналитиков встречаются требования о знании следующего программного обеспечения: MS Visio, All Fusion, ARIS, Rational Suite, стандартов IDEF, DFD, UML

...Функциональные обязанности
Как уже отмечалось, работа системного аналитика состоит в решении следующих задач:
разработка полной и непротиворечивой модели бизнес-процессов компании на основании общения с клиентами

...Знания предметной области, а также владение зарекомендовавшими себя нотациями: IDEF, UML, DFD и другими – позволяет бизнес-аналитику решить задачу непротиворечивости и целостности составляемой им модели. Умения работать с современными программными продуктами – ARIS, Rational Suite, All Fusion – позволит специалисту внести единообразие в общение как с клиентом, так и с разработчиками. Как правило, в компании имеются принятые стандарты описания бизнес-процессов, а потому новоиспеченному системному аналитику необходимо быстро их освоить. При помощи этих инструментов нужно спроецировать запросы клиента на понятный разработчикам язык.

Выпей яду уже

hVosttcodearticles.ruКакое отношение edmx имеет к db проекту? Правильно, вообще никакого.
Ну раз никакого, зачем тогда о них говорить? Давай ещё приплетём вид и цвет фломастеров, которые используются для митингов и набросков? Тем более я ничего против дб проектов не имею, есть задачи, где они нужны, но это к обсуждаемому вопросу имеет весьма посредственное отношение.
Странный ты. То слышны твои детские вопли о том, что db проекты для обезьян. То теперь ничего против db проектов не имеешь.

hVosttКак я уже сказал, если впереди база, то используется подход Database First и точка.
Глупости. Основанные на страхах и фобиях. Как Database First так и Code First позволяют работать во всех плоскостях задач, независимо от того, есть ли уже база или нет.

hVosttЗачем миллиарды записей для разработки? Или вы, бедные, не умеете тестовые данные генерить? Могу научить за отдельную плату
Зачем мне что-то генерить, если оно уже есть и готово с употреблению? Или у тебя фобия, дай что-нибудь сгенерить?

hVosttХм... А enum-ы тоже генерятся из DB-проекта? И вообще, бред ты несёшь оголтелый. Сразу видно полное отсутствие опыта CI разработки. Полнейшее.
А причем тут enum-ы? Отсутствие головного мозга не позволяет тебе осознать суть и важность db проектов.

hVosttcodearticles.ruПочему бессмысленно? У тебя в студии есть возможность сгенерировать честные поко. Вот я и спрашиваю, какая тебе разница, есть база или её нет? У тебя нарушено восприятие информации, я уже раза 3 задал тебе этот вопрос. Но ты продолжает нести какую-то чушь, мол если есть база, значит CF не нужно. Ты укурен?
Откуда ты собрался "генерировать" поко, если у тебя нет базы? Кто тут ещё укурен???
Ты читаешь жопой? Я так и понял. Еще раз, речь идет о генерации поко из существующей БД. Это является неоспоримым аргументом того, что CF можно использовать в обоих случаях - когда БД существует и когда БД не существует.

hVosttcodearticles.ruCode First - "сначало код", и что? Тебе сгенерировали поко, выслали по почте. У тебя нету базы. У тебя есть поко. Ну и? Сначала код. А во-вторых, чем противоречит "сначало код" уже созданной БД? Только названием? Ну можно тогда убить себя об стену, чтобы не было страхов.
Какой может быть "сначала код", если у тебя сначала бд? С логикой-то всё в порядке, друг?
Ты долго будешь прикидывать идиотом? :) Кто запрещает использовать CF при существовании БД? Что мне мешает сгенерить поко по базе, выкинуть базу и продолжать работать в CF стиле? Ты никак наркоман, не иначе.

hVosttСначала код, это означает, что базы ещё нет. Она создаётся по мере разработки.
Ты реально в вакууме. Сначала код не означает , что базы ещё нет. Что за бред ты пишешь?
Code First to an Existing Database: http://msdn.microsoft.com/en-us/data/jj200620.aspx

hVosttХЗ, зачем так упираться, так и скажи, ничё другого ты не умеешь, только так. Я пойму
Упираться? Да просто невооруженным глазом видно, что ты бестолочь

hVosttcodearticles.ruЯ тебе десятый раз говорю, что не нужно писать руками классы по готовой базе. Ты можешь сгенерить поко и использовать их в CF.
Нахрена? Ты бы ещё предложил генерить ассемблерный код, а затем делать ассемблерные вставки
Как это нахрена? А нахрена вообще CF? Представь, тебе могут дать 50% схемы в БД. Остальные 50% тебе нужно допилить. Ты что, будешь руками первые 50% мусолить? Ты - да. А разумная кодеманка возьмет генератор и изготовит за секунду 50% поко. Остальные да, руками. Вот тебе и CF. В чем проблемы?

hVosttcodearticles.ruЭти поко, к примеру, в том же хибере ты не сможешь использовать, так что идеология CF ака кросс database support идет прямиком в топку.
Чой-то? Может просто у тебя опыта нет итерационной разработки с меняющимися требованиями на каждой итерации?
Ты забавен
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38762746
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это похоже на вопрос, что-же было first, яйцо или курица? :)
Вот не пойму. Если при подходе CF я сделал изменения в модели, то нужно лезть в базу и править это руками, или какие-то телодвижения с migrations?
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38762794
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЭто похоже на вопрос, что-же было first, яйцо или курица? :)
Вот не пойму. Если при подходе CF я сделал изменения в модели, то нужно лезть в базу и править это руками, или какие-то телодвижения с migrations?

Add-Migration

всё.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38762795
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruТы дурак?

Профессия бизнес-аналитик (системный аналитик)

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

codearticles.ruГлупости. Основанные на страхах и фобиях. Как Database First так и Code First позволяют работать во всех плоскостях задач, независимо от того, есть ли уже база или нет.

микроскопом можно тоже вполне успешно гвозди забивать. и чо?

codearticles.ruА причем тут enum-ы? Отсутствие головного мозга не позволяет тебе осознать суть и важность db проектов.

у тебя зацикленность на дб проектах, пора тебе лечиться батенька. ещё раз, как ты будешь енумы генерировать из дб-проекта? при чём, при том, что енумы это статические справочники, в том числе с флагами. на уровне моделирования это будет табличка-справочник (ID, Name), на уровне реализации табличка не нужна. ты вообще, дальше своих генераторов когда-нибудь ходил? я уже сомневаюсь, что ты вообще в принципе способен решить задачу, если нельзя что-нибудь сгенерить.

codearticles.ruТы долго будешь прикидывать идиотом? :) Кто запрещает использовать CF при существовании БД? Что мне мешает сгенерить поко по базе, выкинуть базу и продолжать работать в CF стиле? Ты никак наркоман, не иначе.

если тебе нравится забивать микроскопом гвозди, я тут при чём? никто же не запрещает.

codearticles.ruТы реально в вакууме. Сначала код не означает , что базы ещё нет. Что за бред ты пишешь?
Code First to an Existing Database: http://msdn.microsoft.com/en-us/data/jj200620.aspx

ещё раз. И ЧО???? я где-то говорил, что нельзя присобачить CF к существующей базе данных?? ты точно мозг используешь, когда читаешь? я говорил, что накуй не нужно. есть база, я сгенерил edmx и погнал. нет базы, работаем с CF. или у тебя проблемы с восприятием?

codearticles.ruКак это нахрена? А нахрена вообще CF? Представь, тебе могут дать 50% схемы в БД. Остальные 50% тебе нужно допилить. Ты что, будешь руками первые 50% мусолить? Ты - да. А разумная кодеманка возьмет генератор и изготовит за секунду 50% поко. Остальные да, руками. Вот тебе и CF. В чем проблемы?

я не сталкивался с такой задачей, где есть 50% схемы, а 50% надо допилить. такие задачи могут ставить только какие-то упоротые идиоты. у тебя зациклинность на этих схемах. мы решаем задачи, клиенты за это платят, ты же там на свой дизайнер дрочишь.
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38762812
VSirchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так давайте вернемся с моему вопросы, так как я пытаюсь это сделать используя Code First, как я могу настроить модели так, чтобы они работали как мне надо

А вопросы что лучше оставим на выбор программиста
...
Рейтинг: 0 / 0
Entity Framework создание связи через Fluent API
    #38762874
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttcodearticles.ruТы дурак?

Профессия бизнес-аналитик (системный аналитик)

ясно. в живую ты никогда их не видел, т.к. то о чём ты тут распинался к бизнес-аналитику имеет такое же отношение, как уборщицы к системному администрированию.
Какие-то жалкие потуги исправить свой позорный слив, показывающий о том, что ты вообще не имеешь представления о том, чем должен заниматься аналитик. Может быть потому, что у вас жлобская контора, которая свесила эти обязанности на девелоперское мясо? Ну так бы сразу и сказал.

hVosttcodearticles.ruГлупости. Основанные на страхах и фобиях. Как Database First так и Code First позволяют работать во всех плоскостях задач, независимо от того, есть ли уже база или нет.
микроскопом можно тоже вполне успешно гвозди забивать. и чо?
Пока я не увидел ни одного внятного аргумента, который рассказывает нам, что есть микроскоп и гвоздь. Только белый шум и истерика о том, что это "разные подходы", "небо и земля".

hVosttcodearticles.ruА причем тут enum-ы? Отсутствие головного мозга не позволяет тебе осознать суть и важность db проектов.
у тебя зацикленность на дб проектах, пора тебе лечиться батенька. ещё раз, как ты будешь енумы генерировать из дб-проекта? при чём, при том, что енумы это статические справочники, в том числе с флагами. на уровне моделирования это будет табличка-справочник (ID, Name), на уровне реализации табличка не нужна. ты вообще, дальше своих генераторов когда-нибудь ходил? я уже сомневаюсь, что ты вообще в принципе способен решить задачу, если нельзя что-нибудь сгенерить.
Я меня нету зациклинности на db проектах. Ты спросил, как версионить схему, я тебе ответил (помимо того, что саму edmx можно версионить). У меня в проектах не везде используется db солюшен. По причине того, что версионность БД просто не отслеживается, не надо оно. Маленький, енумы поддерживаются в edmx еще с 5 версии, успагойся уже http://msdn.microsoft.com/en-us/data/jj591532.aspx

hVosttcodearticles.ruТы долго будешь прикидывать идиотом? :) Кто запрещает использовать CF при существовании БД? Что мне мешает сгенерить поко по базе, выкинуть базу и продолжать работать в CF стиле? Ты никак наркоман, не иначе.
если тебе нравится забивать микроскопом гвозди, я тут при чём? никто же не запрещает.
Выше я всё сказал про микроскоп и гвозди. Потрудись внятно аргументировать свои мысли, может и будет из тебя толк. А пока ты похож на злого гавкающего пса, которому фиолетово, на кого ругаться из-за забора.

hVosttcodearticles.ruТы реально в вакууме. Сначала код не означает , что базы ещё нет. Что за бред ты пишешь?
Code First to an Existing Database: http://msdn.microsoft.com/en-us/data/jj200620.aspx
ещё раз. И ЧО???? я где-то говорил, что нельзя присобачить CF к существующей базе данных?? ты точно мозг используешь, когда читаешь? я говорил, что накуй не нужно. есть база, я сгенерил edmx и погнал. нет базы, работаем с CF. или у тебя проблемы с восприятием?
Ну вот, первый "внятный" аргумент от тебя, выделил красным :) Еще раз, если ты такой апологет CF, то почему бы не сгенерить себе поко по базе и так же комфортно работать, как работал бы ты без базы? Или "накуй не нужно"? Ты реально в вакууме. А "аргументы" твои заслуживают просто аплодисментов.

hVosttcodearticles.ruКак это нахрена? А нахрена вообще CF? Представь, тебе могут дать 50% схемы в БД. Остальные 50% тебе нужно допилить. Ты что, будешь руками первые 50% мусолить? Ты - да. А разумная кодеманка возьмет генератор и изготовит за секунду 50% поко. Остальные да, руками. Вот тебе и CF. В чем проблемы?
я не сталкивался с такой задачей, где есть 50% схемы, а 50% надо допилить. такие задачи могут ставить только какие-то упоротые идиоты. у тебя зациклинность на этих схемах. мы решаем задачи, клиенты за это платят, ты же там на свой дизайнер дрочишь.[/quot]
Ну если ты не сталкивался с такими задачами, то это не значит, что их нет. Да и вообще забавно слышать про упоротых удиотов от человека, у которого нет опыта работы с такими задачами.
"Все задачи, с которыми я не работал - гавно!" Так?
Хвост, маленький, тебе еще работать и работать над собой и своим скудненьким опытом. Поэтому забился бы ты в своей коморке и не жужжал про то, как нужно кроить мир. Да и голову уже пора включать, чай не студент прыщавый.
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework создание связи через Fluent API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]