|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueEDUARD SAPOTSKI, ТС кроме ГУИДА ничего никогда не юзал.У ГУИДА тоже есть default, смекаешь? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:20 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAВообще меня забавляют такие топики. Вот в MongoDB реализован Upsert и реализован банально: если есть документ с таким _id, то Update, иначе - Insert. Если нет такого в EF, то в чём проблема реализовать-то? Странный пост. Ты уверен, что пост в тему? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:20 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAВообще меня забавляют такие топики. Вот в MongoDB реализован Upsert и реализован банально: если есть документ с таким _id, то Update, иначе - Insert. Если нет такого в EF, то в чём проблема реализовать-то? Странный пост. Ты уверен, что пост в тему?Да, в тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:20 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueпропущено... Странный пост. Ты уверен, что пост в тему?Да, в тему. В какую-то другую наверное. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:22 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Да, в тему. В какую-то другую наверное.Да нет, в эту. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:23 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueпропущено... Угу. А если объект пришел из другого сервиса? Не с пустым ID?Значит сервис хочет обновить объект. MonochromatiqueДа и вообще - делать выводы из пустого ID - как-то дерзко.Ну дак поведайте нам какие факторы говорят Вам, что объект новый, не томите? :) Фактор один - поиск в базе. Это неочевидно, скайана? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:23 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Значит сервис хочет обновить объект. пропущено... Ну дак поведайте нам какие факторы говорят Вам, что объект новый, не томите? :) Фактор один - поиск в базе. Это неочевидно, скайана?Что "поиск в базе"? Какой объект считается новым? Которого нет в базе? А что значит, что объект есть в базе, есть запись с таким Guid? Или есть запись с таким наименованием, или кодом, или ИНН? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:26 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Или если объект приходит от стороннего сервиса, то есть запись о нём в таблице соответсвий между ExternalID и ID в нашей БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:26 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueпропущено... В какую-то другую наверное.Да нет, в эту. MonochromatiqueЕсли ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос. Для альтернативно одаренных - нет проблем реализовать upsert. Вопрос был задан - чтобы понять - надо ли это делать. Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет. Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода. Конкретно здесь, скайана - ты необязателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:27 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Да нет, в эту. MonochromatiqueЕсли ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос. Для альтернативно одаренных - нет проблем реализовать upsert. Вопрос был задан - чтобы понять - надо ли это делать. Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет. Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода. Конкретно здесь, скайана - ты необязателен.Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:29 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueпропущено... пропущено... Для альтернативно одаренных - нет проблем реализовать upsert. Вопрос был задан - чтобы понять - надо ли это делать. Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет. Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода. Конкретно здесь, скайана - ты необязателен.Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД. Так это ты предложил!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:30 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueskyANAпропущено... Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД. Так это ты предложил!!Что я предложил? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:31 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
MonochromatiqueФактор один - поиск в базе. Это неочевидно, скайана? Так в чем проблема? В любом случае при добавлении объекта в базу идет проверка уникальности идентификатора! Можно это оставить на совести СУБД и она выдаст эксепшн если найдет одинаковый ид при вставке, или сделать проверку самому типа var item = db.MyItems.FirstOrDefault(o=>o.ID == id); Но в таком случае проверка пройдет 2 раза, СУБД потом все равно еще раз проверит. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:31 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIMonochromatiqueФактор один - поиск в базе. Это неочевидно, скайана? Так в чем проблема? В любом случае при добавлении объекта в базу идет проверка уникальности идентификатора! Можно это оставить на совести СУБД и она выдаст эксепшн если найдет одинаковый ид при вставке, или сделать проверку самому типа var item = db.MyItems.FirstOrDefault(o=>o.ID == id); Но в таком случае проверка пройдет 2 раза, СУБД потом все равно еще раз проверит. Да нет проблемы. Был вопрос. Он кстати, в название топика вынесен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:37 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
А, я понял проблему: Code First и, следовательно, идентификатор генерируется ручками, через вызов Guid.NewGuid(). А мог бы генерироваться при вставке (INSERT). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:44 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Работая с EF существующий объект всегда надо предварительно вытаскивать. Проверками на 0 или на default(GUID) можно только условно определить, новый объект или не новый. Если новый, делать Add, если не новый, то: 1. Вытаскивать объект из EF 2. Обновлять его 3. SaveChanges AddOrUpdate вообще нигде, кроме Seed в миграциях по сути не применим. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:45 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
hVostt, а можно SaveChanges замапить на хранимку? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:49 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAhVostt, а можно SaveChanges замапить на хранимку? Ну переопределить наверное же можно... неожиданный вопрос... нафига? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:52 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAhVostt, а можно SaveChanges замапить на хранимку? Ну переопределить наверное же можно... неожиданный вопрос... нафига? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:53 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
Ну то есть реализовать Upsert хранимку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:54 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAEDUARD SAPOTSKIпропущено... Ну переопределить наверное же можно... неожиданный вопрос... нафига? Код: sql 1. 2. 3. 4.
Ну в хранимках так часто и пишут, но там на каждую таблицу/представление по хранимке... как ты все это с орм разрулишь... хня короче какая-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 14:59 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAНу то есть реализовать Upsert хранимку :) Дык нах тогда орм? Писать все на хранимках! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 15:00 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAНу то есть реализовать Upsert хранимку :) Дык нах тогда орм? Писать все на хранимках! Не ОРМ, а EF :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 15:05 |
|
EF: Есть ли способ сохранить объект в БД, не зная..
|
|||
---|---|---|---|
#18+
skyANAhVostt, а можно SaveChanges замапить на хранимку? Неа. Но можно «подружить» с хранимкой. Т.е. после выполнения хранимки контекст будет сохранять изменения, без выполнения DML. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2015, 15:05 |
|
|
start [/forum/topic.php?fid=17&msg=38887318&tid=1349620]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 266ms |
0 / 0 |