|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Минус только один. Занафига вставлять в базу во Владике из Москвы ЗАВЕДОМО дубли. Но может автор не все рассказал. Что значит ЗАВЕДОМО? В xls-файле могут быть данные, что уже есть в основных таблицах, а могут и не быть. Они загружаются в промежуточную таблицу, чтобы проще и быстрее их можно было обработать. У тебя есть вариант получше? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:00 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Нет. Ему не нужна проверка в базе. Он просто грузит кучу xls и там есть дубли не с базой, а между файлами. Решение выше писал. Строка кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:09 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderКак искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ? TsHeloWorlderМне нужно загрузить кучу данных, в которых могут встречатся дублирующая информация - ее мне нужно игнорировать: TsHeloWorlderДело в том, что данные загружаются из разных файлов excel. Дубли могут быть, и нужно игнорировать повторные попытки загрузить. Размытая модель. Локальные сущности, куча данных, загрузка... По любому тут надо смотреть в сторону EF Extensions. Как минимум: 1. Выбрать на клиента условия, по которым ты отберешь дубли. 2. Отобрать дубли. 3. Записать в БД не дубли bulk-ом с помощью EF Extensions. Как максимум: 1. Сваять LINQ-запрос на вставку с условием и заслать его в БД с помощью EF Extensions. Но не знаю, умеет ли это EF Extensions ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:10 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Нет. Ему не нужна проверка в базе. Он просто грузит кучу xls и там есть дубли не с базой, а между файлами. Решение выше писал. Строка кода. Ссылку-то дай :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:14 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Petro123, hVostt, Вы предлагаете загнать промежуточные данные во временную таблицу. А затем почистить от дублей. А как можно "почистить от дублей" на основе двух таблиц, находящихся в БД, силами EF ? Или вы все таки предлагаете создать в базе бизнес логику по чистке данных от дублей ? SQL команда Merge такое бы легко решила. Но где располагать эту команду ? создавать процедуру в БД, или вызывать из клиента, из EF ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:15 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, например выбрать все записи из промежуточной таблицы, что уже есть в основной и удалить: https://stackoverflow.com/questions/869209/bulk-deleting-in-linq-to-entities/870081#870081 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:22 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Как-то так: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:26 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Ну или выбрать только те документы из промежуточной таблицы, которых ещё нет в основной. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:27 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Ну так то, смысла удалять нет. Проще сразу писать инсерт, который будет вставлять те данные, которых еще нет. после чего чистить всю временную таблицу. Но мне что-то не нравится это решение. EF тут сбоку-припеку вообще. Даже bulk insert и тот не родной, вроде как, а реализован сторонними разработчиками в виде расширения. Проще на чистом ado.net все сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:33 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, разумно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:38 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123И где же программирование, программисты? )))) Код: c# 1. 2.
Дал ссылку skyANA ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:51 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Завести свой массив словарь и проверять что там при вставке. Не понятно? Формируешь пакет. А уж пакетная запись у всех орм есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:54 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, каким образом формируется dictionary ? И как это будет работать, если два человека с двух разных машин загружают данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:56 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderВы предлагаете загнать промежуточные данные во временную таблицу. А затем почистить от дублей. А как можно "почистить от дублей" на основе двух таблиц, находящихся в БД, силами EF ? Или вы все таки предлагаете создать в базе бизнес логику по чистке данных от дублей ? SQL команда Merge такое бы легко решила. Но где располагать эту команду ? создавать процедуру в БД, или вызывать из клиента, из EF ? Силами EF этого делать не стоит. Стоит силами SQL. EF контекст позволяет отправлять в БД запросы SQL и получать результаты SELECT, и даже маппить их на классы, почти как Dapper. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:59 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, И разберись, все таки кто делает твои дубли. Сосед в базе при многопользовательском режиме это одно, и тв сам читая файлы это другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 11:59 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderПроще на чистом ado.net все сделать. Если УЖЕ есть EF, то надо запросы отправлять через контекст EF, он поинтересней будет, чем голый ADO.NET. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:00 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Я предложил борьбу от своих дублей. От чужих кроме триггера или райзе при вставке ничего не спасет. Или EF кэш общий на все сессии и даст ответ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:04 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, понятно, значит походу твоё решение не годится ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:07 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
В общем, я про дубли при загрузке, а skyANA про межсессионные соседей. Так и спорим)). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:08 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Я предложил борьбу от своих дублей. От чужих кроме триггера или райзе при вставке ничего не спасет. Или EF кэш общий на все сессии и даст ответ? Плохое решение ты предложил. Триггер не нужен нафиг. EF имеет кеш на инстанс и используется только для предотвращения повторного извлечения сущности из БД по ID. Продемонстрирую: dbContext.SomeTable.Find(id) — кеш БУДЕТ работать dbContext.SomeTable.SingleOrDefault(p => p.Id == id) — кеш работать НЕ БУДЕТ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:09 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123В общем, я про дубли при загрузке, а skyANA про межсессионные соседей. Так и спорим)). Чё тут спорить, твоё решение не верно да ещё крайне не оптимально. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:09 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAPetro123, понятно, значит походу твоё решение не годится Я на 1 странице спросил, откуда дубли? На что он сказал - из файлов))))) Он же не сказал, что в базе))). Он дубли искал не закоммиченные. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:13 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVosttЧё тут спорить, твоё решение не верно да ещё крайне не оптимально. Пробовал или Пастернака не читал, но осуждаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:17 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAPetro123, понятно, значит походу твоё решение не годится Я на 1 странице спросил, откуда дубли? На что он сказал - из файлов))))) Он же не сказал, что в базе))). Он дубли искал не закоммиченные. Даже если из файлов, то кто гарантирует, что файлы грузятся в рамках одной сессии? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:18 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVosttЧё тут спорить, твоё решение не верно да ещё крайне не оптимально. Пробовал или Пастернака не читал, но осуждаю... Как думаешь, если с крыши сигануть, разобьёшься? Или надо попробовать, чтобы убедиться? :) В твоё решении недостатки очевидны. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:25 |
|
|
start [/forum/topic.php?fid=17&msg=39507416&tid=1349268]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 303ms |
0 / 0 |