|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EF: Есть ли способ сохранить объект в БД, не зная есть он там или нет? Я имею ввиду - не производя поиск "вручную" в БД. Вот есть у меня объект, надо его записать в базу. Откуда он взялся и когда - никто не знает. Предполагается, что кода должно быть минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 00:42 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Attaching an existing entity to the context If you have an entity that you know already exists in the database but which is not currently being tracked by the context then you can tell the context to track the entity using the Attach method on DbSet. The entity will be in the Unchanged state in the context. that you know... Что это за горячечный бред?! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 00:46 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueEF: Есть ли способ сохранить объект в БД, не зная есть он там или нет? Есть ли у данной задачи смысл? Можешь поделиться? Очень интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 01:13 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
hVostt, Меня вообще поражает этот вопрос. Он появляется из раза в раз - и заставляет меня думать, что я далеко чего-то не понимаю. Я пытаюсь для себя расставить метода работы с контекстом, в туторах они даны россыпью, и неясно, кто на каком уровне находится. Если ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос. Но мне решительно непонятно, почему EF не берет это на себя? Ведь на самом деле - полагать, что мы ЗНАЕМ, что объект есть/нет в БД (или откуда он там пришел) - какая-то насмешка. А когда читаешь об этом на сайте у MS.. Слов нет. У Оракла наряду с INSERT и UPDATE есть оператор MERGE, который как раз и выясняет - есть запись или нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 01:23 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Сейчас я вижу, что у работ с объектом в контексте EF - две разновидности. В зависимости - новый он или нет. У общего у кода этих разновидностей только db.saveChanges(); >:( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 01:26 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
У моей незамысловатой формы - восемь полей ссылочного типа, справочники для которых надо как-то рендерить в представлении. Смысл один и тот же, но код разный)) В зависимости от того - есть объект в БД - или нет. (Create/Edit) Самый смех, что если бы я плюнул на всю эту virtual lazy context и работал исключительно бы с простыми типами - проблем бы не было. Замороченный он какой-то, EF этот... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 01:36 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueЕсли ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос. Да можно, но лучше не надо. Вот прям настаиваю, что не надо. Просто не надо, если нет на то веских причин. Спросил, чтобы понять является ли причина веской или нет. MonochromatiqueЗамороченный он какой-то, EF этот... Ну есть немного. Но проблема в том, что ты хочешь натянуть на EF какой-то свой сценарий работы с данными, вместо того, чтобы разобраться как работает и почему именно так устроен EF. Да, он предлагает в качестве основной одну стратегию и вокруг неё всё вертится. Для изменения данных в EF надо вытащить объект, изменить его, затем сделать SaveChanges. Так он работает. Это не значит, что другого пути совсем нет. Хочешь, пихни чистый SQL, но не жди согласованности контекста, что значит потери львиной доли смысла EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 02:03 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueСамый смех, что если бы я плюнул на всю эту virtual lazy context и работал исключительно бы с простыми типами - проблем бы не было. До сих пор существуют люди, не воспринимающие никаких ORM, даже micro-ORM, предпочитая собирать свой, чистый, кошерный SQL с помощью манипуляций со строками. Ну и ниче так, живут себе, кодят... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 02:07 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Monochromatique, может просто не проснулся, но никак не могу догнать сути вопроса... Что такое "объект в БД"? Как понимаю в Вашем случае это просто строка в таблице или представлении, правильно? Каждую строку мы как правило идентифицируем через ID, так? На уровне репозитория/орм если у нас появился новый объект, мы даем ему идентификатор, добавляем его в контекст и делаем SubmitChanges/SaveChanges. В чем собственно проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 10:47 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, У меня в определенном месте программы есть объект, который нужно сохранить в БД. Код будет либо разным, в зависимости от того - есть ли этот объект в базе, или нет. Либо код будет всегда "избыточным", потому что каждый раз будет проверять - есть такой объект в базе - или нет. В туторах от MS фраза, that you know меня вообще убила. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 11:30 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueУ меня в определенном месте программы есть объект, который нужно сохранить в БД. Код будет либо разным, в зависимости от того - есть ли этот объект в базе, или нет. Либо код будет всегда "избыточным", потому что каждый раз будет проверять - есть такой объект в базе - или нет. В туторах от MS фраза, that you know меня вообще убила. Ну создайте в таблице уникальные поля и сохраняйте объект через try catch, если объект с такими полями существует словите ексепшн... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 12:14 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIMonochromatiqueУ меня в определенном месте программы есть объект, который нужно сохранить в БД. Код будет либо разным, в зависимости от того - есть ли этот объект в базе, или нет. Либо код будет всегда "избыточным", потому что каждый раз будет проверять - есть такой объект в базе - или нет. В туторах от MS фраза, that you know меня вообще убила. Ну создайте в таблице уникальные поля и сохраняйте объект через try catch, если объект с такими полями существует словите ексепшн... O_O Еще лучше... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 12:21 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueEDUARD SAPOTSKI, У меня в определенном месте программы есть объект, который нужно сохранить в БД. Код будет либо разным, в зависимости от того - есть ли этот объект в базе, или нет.Идентификатор у этого объекта есть? По нему определяется "есть ли этот объект в базе, или нет", или как-то иначе? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 13:28 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueЛибо код будет всегда "избыточным", потому что каждый раз будет проверять - есть такой объект в базе - или нет.Офигеть какой избыточный код: How to create an upsert method ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 13:30 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 13:32 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAОфигеть какой избыточный код: How to create an upsert method Проверять по значению Id на ноль, это весьма оригинально ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 13:41 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueЛибо код будет всегда "избыточным", потому что каждый раз будет проверять - есть такой объект в базе - или нет.Офигеть какой избыточный код: How to create an upsert method Треш. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 13:44 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
hVosttskyANAОфигеть какой избыточный код: How to create an upsert method Проверять по значению Id на ноль, это весьма оригинально Наоборот, это весьма банально :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:10 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Офигеть какой избыточный код: How to create an upsert method Треш.Ну ждите, пока Microsoft вам реализуют Upsert ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:11 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAhVosttпропущено... Проверять по значению Id на ноль, это весьма оригинально Наоборот, это весьма банально :) Угу. А если объект пришел из другого сервиса? Не с пустым ID? Да и вообще - делать выводы из пустого ID - как-то дерзко. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:13 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Вообще меня забавляют такие топики. Вот в MongoDB реализован Upsert и реализован банально: если есть документ с таким _id, то Update, иначе - Insert. Если нет такого в EF, то в чём проблема реализовать-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:15 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANA...то в чём проблема... Мне кажется проблема в том, что ТС не осознал мощь гуида и юзает инты с автоинкрементами ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:18 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, ТС кроме ГУИДА ничего никогда не юзал. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:19 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Наоборот, это весьма банально :) Угу. А если объект пришел из другого сервиса? Не с пустым ID?Значит сервис хочет обновить объект. MonochromatiqueДа и вообще - делать выводы из пустого ID - как-то дерзко.Ну дак поведайте нам какие факторы говорят Вам, что объект новый, не томите? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:19 |
|
|
start [/forum/topic.php?fid=17&msg=38887211&tid=1349620]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 242ms |
total: | 489ms |
0 / 0 |