powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Есть ли способ сохранить объект в БД, не зная..
25 сообщений из 52, страница 2 из 3
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887221
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueEDUARD SAPOTSKI,

ТС кроме ГУИДА ничего никогда не юзал.У ГУИДА тоже есть default, смекаешь? :)
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887222
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВообще меня забавляют такие топики. Вот в MongoDB реализован Upsert и реализован банально: если есть документ с таким _id, то Update, иначе - Insert.

Если нет такого в EF, то в чём проблема реализовать-то?

Странный пост. Ты уверен, что пост в тему?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887225
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAВообще меня забавляют такие топики. Вот в MongoDB реализован Upsert и реализован банально: если есть документ с таким _id, то Update, иначе - Insert.

Если нет такого в EF, то в чём проблема реализовать-то?

Странный пост. Ты уверен, что пост в тему?Да, в тему.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887228
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Странный пост. Ты уверен, что пост в тему?Да, в тему.

В какую-то другую наверное.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887230
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
Да, в тему.

В какую-то другую наверное.Да нет, в эту.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887233
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Угу. А если объект пришел из другого сервиса? Не с пустым ID?Значит сервис хочет обновить объект.
MonochromatiqueДа и вообще - делать выводы из пустого ID - как-то дерзко.Ну дак поведайте нам какие факторы говорят Вам, что объект новый, не томите? :)

Фактор один - поиск в базе. Это неочевидно, скайана?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887237
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
Значит сервис хочет обновить объект.
пропущено...
Ну дак поведайте нам какие факторы говорят Вам, что объект новый, не томите? :)

Фактор один - поиск в базе. Это неочевидно, скайана?Что "поиск в базе"?
Какой объект считается новым? Которого нет в базе?
А что значит, что объект есть в базе, есть запись с таким Guid? Или есть запись с таким наименованием, или кодом, или ИНН?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887239
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или если объект приходит от стороннего сервиса, то есть запись о нём в таблице соответсвий между ExternalID и ID в нашей БД?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887240
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


В какую-то другую наверное.Да нет, в эту.

MonochromatiqueЕсли ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос.


Для альтернативно одаренных - нет проблем реализовать upsert.
Вопрос был задан - чтобы понять - надо ли это делать.
Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет.

Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода.

Конкретно здесь, скайана - ты необязателен.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887244
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
Да нет, в эту.

MonochromatiqueЕсли ответ - НЕЛЬЗЯ, то понятно - значит надо его искать в БД перед сохранением, вот и весь смысл. Чтобы это понять - и был сформулирован этот вопрос.


Для альтернативно одаренных - нет проблем реализовать upsert.
Вопрос был задан - чтобы понять - надо ли это делать.
Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет.

Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода.

Конкретно здесь, скайана - ты необязателен.Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887248
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


пропущено...


Для альтернативно одаренных - нет проблем реализовать upsert.
Вопрос был задан - чтобы понять - надо ли это делать.
Отчет был дан еще hvostt-ом - если очень надо, то надо делать самому, в EF такого нет.

Потом примчался скайана со слюнями про дефолтный гуид и примером трешового кода.

Конкретно здесь, скайана - ты необязателен.Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД.

Так это ты предложил!!
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887251
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueskyANAпропущено...
Не тебе решать. Ты будешь проверять в базе, а кто-то другой, прочитав этот топик тупо сравнит с default(Guid) без лишнего запроса к БД.

Так это ты предложил!!Что я предложил?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887253
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueФактор один - поиск в базе. Это неочевидно, скайана?
Так в чем проблема? В любом случае при добавлении объекта в базу идет проверка уникальности идентификатора! Можно это оставить на совести СУБД и она выдаст эксепшн если найдет одинаковый ид при вставке, или сделать проверку самому типа var item = db.MyItems.FirstOrDefault(o=>o.ID == id); Но в таком случае проверка пройдет 2 раза, СУБД потом все равно еще раз проверит.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887265
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIMonochromatiqueФактор один - поиск в базе. Это неочевидно, скайана?
Так в чем проблема? В любом случае при добавлении объекта в базу идет проверка уникальности идентификатора! Можно это оставить на совести СУБД и она выдаст эксепшн если найдет одинаковый ид при вставке, или сделать проверку самому типа var item = db.MyItems.FirstOrDefault(o=>o.ID == id); Но в таком случае проверка пройдет 2 раза, СУБД потом все равно еще раз проверит.

Да нет проблемы. Был вопрос. Он кстати, в название топика вынесен.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887283
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, я понял проблему: Code First и, следовательно, идентификатор генерируется ручками, через вызов Guid.NewGuid().
А мог бы генерироваться при вставке (INSERT).
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887288
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работая с EF существующий объект всегда надо предварительно вытаскивать. Проверками на 0 или на default(GUID) можно только условно определить, новый объект или не новый. Если новый, делать Add, если не новый, то:

1. Вытаскивать объект из EF
2. Обновлять его
3. SaveChanges

AddOrUpdate вообще нигде, кроме Seed в миграциях по сути не применим.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887296
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, а можно SaveChanges замапить на хранимку?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887305
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, а можно SaveChanges замапить на хранимку?
Ну переопределить наверное же можно... неожиданный вопрос... нафига?
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887310
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAhVostt, а можно SaveChanges замапить на хранимку?
Ну переопределить наверное же можно... неожиданный вопрос... нафига?
Код: sql
1.
2.
3.
4.
UPDATE ...

IF @@ROWCOUNT = 0
  INSERT ...
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887311
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну то есть реализовать Upsert хранимку :)
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887318
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAEDUARD SAPOTSKIпропущено...

Ну переопределить наверное же можно... неожиданный вопрос... нафига?
Код: sql
1.
2.
3.
4.
UPDATE ...

IF @@ROWCOUNT = 0
  INSERT ...


Ну в хранимках так часто и пишут, но там на каждую таблицу/представление по хранимке... как ты все это с орм разрулишь... хня короче какая-то...
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887321
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу то есть реализовать Upsert хранимку :)
Дык нах тогда орм? Писать все на хранимках!
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887332
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAНу то есть реализовать Upsert хранимку :)
Дык нах тогда орм? Писать все на хранимках! Не ОРМ, а EF :)
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887333
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, а можно SaveChanges замапить на хранимку?

Неа.

Но можно «подружить» с хранимкой. Т.е. после выполнения хранимки контекст будет сохранять изменения, без выполнения DML.
...
Рейтинг: 0 / 0
EF: Есть ли способ сохранить объект в БД, не зная..
    #38887334
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе ОРМ, а EF :)
Никогда не понимал, зачем это поделие, когда есть православный L2SQL
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 2 из 3
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Есть ли способ сохранить объект в БД, не зная..
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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