powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Core Database First -> Code First
25 сообщений из 174, страница 2 из 7
EF Core Database First -> Code First
    #39496685
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyhVosttпропущено...


Ты про .NET Core, или EF Core?я про это: 20678555

Я так не делал, не знаю :0
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496716
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496724
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

есть такая фигня - https://www.codeproject.com/Articles/1160615/Generating-Code-for-EF-Core-with-CatFactory

Всё равно, до сих пор не понимаю смысла :)

Code First это же миграции. А если БД уже есть, надо лишь продолжить её существование, то как бы первой миграции не должно быть. Это можно сделать конечно, там есть ключик, но это ломает подход.

Наверное лучше всё же Model First. На мой взгляд сугубо.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496754
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

есть такая фигня - https://www.codeproject.com/Articles/1160615/Generating-Code-for-EF-Core-with-CatFactory фигня какая-то. db first, только в профиль.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496767
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,


ModelFirst - это не то что лучше, а единственный подход
Все эти БД, код и т.д. вторичны
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496849
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Да они все об одном и том же: статичная схема данных, проста выбирается точка, где схема будет изменяться: в коде, в модели или в бд. Зависит от того, кто к чему привык. Мне нравится подход из кода, так я могу разрабатывать вообще не открывая СУБД, просто указал коннекшен стринг и забыл. Есть проект у нас, такой не очень большой, я БД в глаза не видел чё там внутри, просто создавал классы, генерировал миграции из кода. И это работает на отлично. Никаких косяков ни разу не было.

Но сейчас, конечно, мы уже отошли от этого :) У нас сразу 3 разных СУБД (Postgres, Mongo, ElasticSearch), и EF со своими шашечками пролетает.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496929
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ нас сразу 3 разных СУБД (Postgres, Mongo, ElasticSearch), и EF со своими шашечками пролетает.То есть ЕF не используете?
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496931
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то противоречиво)
hVosttИ это работает на отлично. Никаких косяков ни разу не было.
hVosttНо сейчас, конечно, мы уже отошли от этого :)
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39496937
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123как-то противоречиво)
hVosttИ это работает на отлично. Никаких косяков ни разу не было.
hVosttНо сейчас, конечно, мы уже отошли от этого :)без косяков скучно.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497046
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТо есть ЕF не используете?

Только в проектах на поддержке, ещё активно используем. В новых пока нет.

Petro123как-то противоречиво)
hVosttИ это работает на отлично. Никаких косяков ни разу не было.
hVosttНо сейчас, конечно, мы уже отошли от этого :)

Не противоречиво, EF отлично справляется со своими задачами. Но у нас уровень задач вырос, и EF уже не подходит.

Используем Dapper для работы с SQL.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497075
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAntonariyТо есть ЕF не используете?

Только в проектах на поддержке, ещё активно используем. В новых пока нет.а что используете? классический System.Data...?
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497076
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, dapper
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497077
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял, в нем нужно пейсать текстовый sql-говнокод?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public User Create(User user)
        {
            using (IDbConnection db = new SqlConnection(connectionString))
            {
                var sqlQuery = "INSERT INTO Users (Name, Age) VALUES(@Name, @Age); SELECT CAST(SCOPE_IDENTITY() as int)";
                int? userId = db.Query<int>(sqlQuery, user).FirstOrDefault();
                user.Id = userId;
            }
            return user;
        }
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497089
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyне понял, в нем нужно пейсать текстовый sql-говнокод?

Dapper работает чисто с SQL, да.
Означает ли это, что его надо писать вручную?
Вовсе нет :)
Кто мешает написать свой SqlBuilder? Задачка-то не сложная.
Хотя могут быть такие SQL, которые лучше написать вручную, полностью или частично.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497091
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Мы используем CQRS/ES. Все таблицы в SQL полностью динамические, т.е. изначально там вообще нет ни одной таблицы. По мере добавления агрегатов, добавляются таблицы, для реализации Read Model. Поэтому EF нам тут никак не поможет ничем.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497092
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

лучше вообще не пользоваться data class и тогда нафиг и этот даппер не нужен будет
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497094
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAntonariy,

Мы используем CQRS/ES. Все таблицы в SQL полностью динамические, т.е. изначально там вообще нет ни одной таблицы. По мере добавления агрегатов, добавляются таблицы, для реализации Read Model. Поэтому EF нам тут никак не поможет ничем.
может, если модель ваш влезает в EDM, то можно EDM налету сгенерировать и пользоваться EF, чем всякие недоделки в виде дапперов
у меня модель не влезает EDM, да и РМ тоже (из за агрегатных ссылочных типов - это типа "Сборочная единица" = Union(Изделие, Деталь, ПКИ, Материал,...,Заготовка). Мало того - этот агрегат динамичен.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497095
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще много чего со ссылочными типами, пересекающимися схемами 9макротипы) и т.д.

надо еще какой то слой сверх-рядом с ЕДМ :(
но можно все же взять ЕДМ и сваять сверху свой слой - все же лучше наверное было бы - за счет поддержки ЕФ многих провайдеров
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497099
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosлучше вообще не пользоваться data class и тогда нафиг и этот даппер не нужен будет

Не понимаю о чём ты.

ViPRosможет, если модель ваш влезает в EDM, то можно EDM налету сгенерировать и пользоваться EF, чем всякие недоделки в виде дапперов

Недоделка в виде даппера используется в реализации StackOverflow, они же её и сделали.
Наша модель не может использоваться в EDM, так как создаётся в рантайме, а SQL база воссоздаётся и ведётся из событий. Миграция тоже событие.

ViPRosу меня модель не влезает EDM, да и РМ тоже (из за агрегатных ссылочных типов - это типа "Сборочная единица" = Union(Изделие, Деталь, ПКИ, Материал,...,Заготовка). Мало того - этот агрегат динамичен.

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

ViPRosи еще много чего со ссылочными типами, пересекающимися схемами 9макротипы) и т.д.

У нас любой бизнес-тип, это инфо-тип. Ссылочный тип, это всего лишь один из типов системы инфо-типов. Ссылка это всегда идентификатор на агрегат. Так как идентификаторы уникальны, мы можем чисто по ID найти любой, не зная ни типа, ни таблицы, ничего. Только ID. Аналогия такая же, как в .NET имея ссылку на Object, ты можешь получить GetType() и делать свои дела.

ViPRosнадо еще какой то слой сверх-рядом с ЕДМ :(
но можно все же взять ЕДМ и сваять сверху свой слой - все же лучше наверное было бы - за счет поддержки ЕФ многих провайдеров

EDM это про статическую модель.

Тем более, у нас сейчас SQL это чисто только READ, никаких операций пользовательских INSERT или UPDATE нет вообще в принципе. Только SELECT и точка. Зачем над EDM?
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497107
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ нас любой бизнес-тип, это инфо-тип. Ссылочный тип, это всего лишь один из типов системы инфо-типов. Ссылка это всегда идентификатор на агрегат. Так как идентификаторы уникальны, мы можем чисто по ID найти любой, не зная ни типа, ни таблицы, ничего. Только ID. Аналогия такая же, как в .NET имея ссылку на Object, ты можешь получить GetType() и делать свои дела.


агрегат у меня - это некоторое множество ваших инфотипов (они и же просто типы и они ж ссылочные типы)
то что по ИД можно вычислить тип и т.д., означает наличие громадного лукапирущего типа - Объект, что воще то чревато, трудно вести его :(

hVosttТем более, у нас сейчас SQL это чисто только READ, никаких операций пользовательских INSERT или UPDATE нет вообще в принципе. Только SELECT и точка. Зачем над EDM?
ну значит либо система мало должна писать, либо будет работать медленно
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497108
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttEDM это про статическую модель.


EDM можно генерировать в рантайме и пользовать
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497121
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosагрегат у меня - это некоторое множество ваших инфотипов (они и же просто типы и они ж ссылочные типы)
то что по ИД можно вычислить тип и т.д., означает наличие громадного лукапирущего типа - Объект, что воще то чревато, трудно вести его :(

Нет никакого громадного лупапирующего типа. Это простая возможность, мы её не планировали, просто получили нахаляву :)

Инфо-тип у нас тоже агрегат.

ViPRosну значит либо система мало должна писать, либо будет работать медленно

Вообще-то пофигу сколько она будет писать. Скорость чтения у нас максимально возможная в принципе. Скорость записи тоже быстрая, так как пишутся события. Но это всё не даётся бесплатно. За всё приходится платить избыточностью, но никого это не парит. Это вообще -- последнее, что кого-то парит.


ViPRosEDM можно генерировать в рантайме и пользовать

Ну какой смысл EDM в райнтайме? EDM это типизация, смысл которой только исключительно в разработке. В рантайме нафиг не упёрлась.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497178
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНу какой смысл EDM в райнтайме? EDM это типизация, смысл которой только исключительно в разработке. В рантайме нафиг не упёрлась.да уж.
видел разработчиков, которые считают, что и объектная модель, все эти implements и extends, переносится в машинный код после компиляции.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497180
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt За всё приходится платить избыточностью, но никого это не парит. Это вообще -- последнее, что кого-то парит.Если избыточность генерируется - не вопрос. А если говнокодится руками? Это же время, которое - деньги. Хорошо, когда и времени и денег выше крыши, но обычно это не так. Приходится идти на компромиссы.
...
Рейтинг: 0 / 0
EF Core Database First -> Code First
    #39497187
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЕсли избыточность генерируется - не вопрос. А если говнокодится руками? Это же время, которое - деньги. Хорошо, когда и времени и денег выше крыши, но обычно это не так. Приходится идти на компромиссы.

Я имел в виду избыточность данных, а не избыточность кода. Кода, кстати, получается на порядки меньше, чем если бы ту же задачу мы решали классическим способом, через EF. И с течением времени, количество порядков растёт. Например, добавили 50 сущностей, с логикой, валидацией, формочками, со сложной безопасностью, с проверками, с полноценной историей с откатами, и... не написали ни строчки кода, ничего не компилировали, не перевыкладывали. Нужные таблички в SQL создались, в ElasticSearch создались индексы для поиска.
...
Рейтинг: 0 / 0
25 сообщений из 174, страница 2 из 7
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Core Database First -> Code First
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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