|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
Алексей ККласс MyDbContext зависит от класса MyEntity? Нет. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
И это работает. Никакой прямой зависимости от MyEntity нет и не надо. Ручной привод в топку! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2017, 14:57 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
Nechto Ошибка при добавлении новой связки (Entities in 'Db.MessageReferences' participate in the 'Message_MessageReference' relationship. 0 related 'Message_MessageReference_Source' were found. 1 'Message_MessageReference_Source' is expected.) Ты забыл предварительно добавить новый MessageBookOne в контекст: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2017, 14:59 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
hVosttNechto Ошибка при добавлении новой связки (Entities in 'Db.MessageReferences' participate in the 'Message_MessageReference' relationship. 0 related 'Message_MessageReference_Source' were found. 1 'Message_MessageReference_Source' is expected.) Ты забыл предварительно добавить новый MessageBookOne в контекст: Код: c# 1. 2.
Все работает, я просто проглядел одну связку в классе. Убрал её, все заработало! Хотел спросить так для полноты вопроса. Если использовать code first, как можно задать свои названия полям ("MessageBookOne_Id" и "BookOne_Id")? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2017, 16:22 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
hVosttАлексей КhVosttпропущено... Вообще-то не зависит . Не знаю, с чего ты это взял. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Класс MyDbContext зависит от класса MyEntity? Нет.Ты точно в этом уверен? Возьми таймаут, подумай, с ответом никто не торопит. hVostt Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
И это работает. Никакой прямой зависимости от MyEntity нет и не надо. Ручной привод в топку!Писать в прикладном коде db.MyEntity удобнее, чем db.Set<MyEntity>() , а это очень важно. Таки контекст-потомок со свойствами лучше описать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 05:06 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
Алексей К, чем удобнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 05:42 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
Алексей КТы точно в этом уверен? Возьми таймаут, подумай, с ответом никто не торопит. Да, точно уверен. У нас в одном небольшом проекте MyDbContext в одной сборке, а классы Entity в другой, и у первой сборки нет ссылки на вторую. Скажи мне, какой тебе ещё нужен показатель того, что класс контекста не зависит от классов Entity? Алексей КПисать в прикладном коде db.MyEntity удобнее, чем db.Set<MyEntity>() , а это очень важно. Таки контекст-потомок со свойствами лучше описать. В прикладном коде никто вообще не работает напрямую с MyDbContext. Есть слой запросов и репозиторий, который отлично ложится в описанную мною модель. Это надо чтобы проект был совсем задротский и студенческий, чтобы прописывать все +100500 сущностей в MyDbContext и потом работать с контекстом напрямую. Настолько несерьёзно, что мне не интересно это даже обсуждать. Любой подход имеет право на жизнь, подход зависит от опыта и сложности и умения делать SOLID-решения. Если такого умения нет, можно пихать всё в контекст, ради бога. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 06:57 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
hVostt, Я недавно посмотрел в каком состоянии сейчас ЕФ (вернее, что можно делать с EDM). Либо я раньше не очень внимательно смотрел, либо теперь появилась возможность налету сгенерировать EDM. Это уже хорошо, если бы раньше такое было возможно, я бы свой генератор СКЛ не писал бы для ВИПРОС. Но, кажется все еще нет возможности делать ссылку на разные объекты. (Т.е. имеется свойство "Лицо", которое является Классификатором - Лицо - {Юрлицо{Банк, Кредитная организация,..} ФизЛицо{ИП, Сотрудник,...}}. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 14:42 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
ViPRosЯ недавно посмотрел в каком состоянии сейчас ЕФ (вернее, что можно делать с EDM). Либо я раньше не очень внимательно смотрел, либо теперь появилась возможность налету сгенерировать EDM. А как это тебе поможет? На лету, ты подразумеваешь в рантайме? ViPRosЭто уже хорошо, если бы раньше такое было возможно, я бы свой генератор СКЛ не писал бы для ВИПРОС. Да не, сила EF в конкретной модели для приложения, конкретные классы, конкретная схема. Не для динамики он совершенно определённо. Фишка EF, что можно последовательно развивать модель данных, получая хороший контроль, миграции (или синхронизации), и работать с данными через LINQ (на ограниченном подмножестве запросов, годных для большинства типовых задач). А также иметь возможность переехать с одной СУБД на другую. Это не утопия, если БД использовалась только как хранилище данных, без логик. ViPRosНо, кажется все еще нет возможности делать ссылку на разные объекты. (Т.е. имеется свойство "Лицо", которое является Классификатором - Лицо - {Юрлицо{Банк, Кредитная организация,..} ФизЛицо{ИП, Сотрудник,...}}. Можно через иерархию. На любой класс ты сослаться всё равно не можешь, но можешь сослаться на объект иерархии. Если иерархия слишком широкая (у тебя 100500 классификаторов), то это будет еле шевелиться (если вообще будет). Поэтому твоя задача не натягивается :) Вообще ВИПРОС отлично ложится на CQRS / ES / DDD, на самом деле, это решение. Тут уже EF точно не в кассу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 14:57 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
hVosttВообще ВИПРОС отлично ложится на CQRS / ES / DDD, на самом деле, это решение. Тут уже EF точно не в кассу. Да просто надоело одному тянуть это дело. Вот и периодически посматриваю - можно ли что нить покрыть сторонней разработкой. Но, пока нифига не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 15:13 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
ViPRosДа просто надоело одному тянуть это дело. Научись «продавать» свои идеи и решения :) Тут по-другому никак. ViPRosВот и периодически посматриваю - можно ли что нить покрыть сторонней разработкой. Но, пока нифига не вижу. Ну EF совершенно точно тебе не поможет. Тут надо методологию менять. Не работать с табличками в БД. Это уныло, совершенно не гибко, тянет за собой целый вагон костылей и кучу кривых компромиссов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 15:29 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
hVostt, Потратил мин 20 на эти CQRS|ES Это та же СУБД, только что транзакшн лог не усекается, а БД для чтения генерируется аспектно, как срезы некоторых событий над объектами. Т.е. - Объекты никуда не делись. Ведется лог метаданных объекта, и лог событий меняющих состояние объекта. И на основе этих логов создаются проекции в разных точках лайфтайма объекта. Это хорошо для анализа причинно-следственных вещей. И это хорошо, когда событий мало и они необратимы (но, сторнируемы - а это просто ужас, надо всю цепочку до конца анализировать, так как последействие ужасна). Очень узколобая вещь я тебе скажу, а не технология для широкого применения. Ну, если бы хотя бы 50 было бы мне :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 15:38 |
|
c# Пример Code First реализовать в через Mapping
|
|||
---|---|---|---|
#18+
ViPRos, Объекты превратились в агрегаты. Если попытаешься работать с агрегатами через классические таблицы БД, будешь очень огорчён и скажешь, в задницу ваши ДДД и агрегаты туда же со всеми потрохами. Поэтому кто имел неудачный опыт знакомства с ДДД не шибко хорошо отзывались, это понятно. БД для чтения да. Можно генерить какие угодно срезы. На любой чих. Это конечно избыточно, но зато дешёво и быстро. Это хорошо не для анализа причинно-следственных вещей (это всего лишь бонус, а подают его иногда как фичу), а хорошо для постоянно и непрерывно меняющихся бизнес-требований. Бизнес он такой, его тащит во все стороны, как подвыпившую девку. И CQRS/ES позволяет быстро и гибко подхватывать на лету эту девку, без лишней бюрократии. ViPRosОчень узколобая вещь я тебе скажу, а не технология для широкого применения. Да. На начальном этапе она очень затратная. До первого рабочего результата может пройти не мало времени. Тогда как на EF уже завтра можно херачить CRUD и в продакшен ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 15:51 |
|
|
start [/forum/topic.php?fid=17&msg=39441965&tid=1349301]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
288ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 402ms |
0 / 0 |