|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Мне нужно загрузить кучу данных, в которых могут встречатся дублирующая информация - ее мне нужно игнорировать: Код: c# 1. 2.
Но оно не работает, если после каждой вставки не сохранять информацию в БД. А мне не хотелось бы вызывать SaveChanges после каждой строки документа, состоящего из тысяч строк. Можно как-то заставить EF при поиске искать и в локальном кеше ? PS. Вообще можно ли сделать так, чтобы EF при вставке в БД сам проверял наличие информации (по поисковому запросу - например по номеру документа), и вставлял только отсутствующую ? Т.е. некий аналог SQL Merge. Просто, ведь, DbContext.Documents.FirstOrDefault тоже каждый раз будет делать обращение к бд. А значит будет тысячи обращений, при вставке данных. Хотелось бы свести это все к единственному обращению в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 12:48 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Если поиск по первичному ключику PK то должно все работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 13:53 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, Не по первичному ключу. Добавляется документ с уникальным номером. А ключ это сгенеренный в базе ID. Хотелось бы иметь возможность искать в локальном кэше по номеру документу. А еще больше хотелось бы, чтобы уже при bulk вставке в базу производились эти проверки. Чтобы не пулять тысячу маленьких запросиков, а один, пусть и большой. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 14:17 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Тут не подскажу. EF не знаю. А если так: Коллекция строк изначально должна быть без дублей? Откуда дубляж? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 14:32 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Мне кажется что переносить какую-то даже простейшую BL в EF не имеет никакого смысла да и не совсем корректно. Почему бы не вставлять данные уже заведомо отфильтрованные. А проверять у БД все равно придется , если например там уже есть строка с таким номером документа. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 15:32 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Дело в том, что данные загружаются из разных файлов excel. Дубли могут быть, и нужно игнорировать повторные попытки загрузить. Это можно сделать через: Код: c# 1. 2. 3.
Но мне не нравится шквал запросов в базу данных. По уму бы все делать в одном запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 16:42 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Любой ОРМ проверяет разность объектов по PK ID в базе. У тебя объект ещё не сохранялся значит id не назначен. Значит сравнение по Обычному полю это бизнес логика и должна быть вне EF. Выше верно сказали. Один входной файл это сессия и коммит. Либо собирай их вместе и коллекцией dictionary отбрось дубли. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 16:53 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, Дубли могут быть в РАЗНЫХ файлах. Т.е. нужно проверять наличие документа из файла с теми, что уже загружены в базу. Т.е. делать тысячу запросов в базу вида FirstOrDefault (x=> x.DocNumber== y.DocNumber). Как я могу от этого избавится ? Как можно сделать bulk вставку с проверкой в момент добавления ? Ну я могу конечно написать процедуру t-sql и закидывать туда табличный параметр - но это все без EF. А с EF можно что-то сделать более менее эффективное в плане производительности то ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:00 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, IMHO EF и любой ОРМ не пркдназначен для массовой пакетной заливке ....bulk. Делай без него хранимкой или xml, json, .... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:04 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Еще вариант, список TDict <int> и очистка когда решил скинуть в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:11 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123Любой ОРМ проверяет разность объектов по PK ID в базе. В NHiberbate есть возможность настроить проверку не по ID, а по полям, так что не стоит обобщать. Возможно и в EF это есть. Но ИМХО задачу явно надо решать иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:23 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderДубли могут быть в РАЗНЫХ файлах. А как Вы понимаете, что это именно дубли, а не обновлённая версия данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:25 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderМожно как-то заставить EF при поиске искать и в локальном кеше ? Никак. Кеш у EF не для того, чтобы по нему выполнять запросы. Поэтому никак вообще. Совсем. Прям тотальное НЕТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:39 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderА с EF можно что-то сделать более менее эффективное в плане производительности то ? Хм, AddOrUpdate ? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:40 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderДубли могут быть в РАЗНЫХ файлах. Т.е. нужно проверять наличие документа из файла с теми, что уже загружены в базу. Грузите всё в отдельную таблицу, потом делайте запрос на выявление и удаление дубликатов, потом сливайте данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:42 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAХм, AddOrUpdate ? Код: c# 1.
Т.е. по натуральному ключу И это не производительно для большого объёма строк. На каждую запись будет запрос в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:43 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Ещё вариант по-сложнее, постройте индекс в памяти по данным в БД, и оперируйте этим индексом. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:45 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Я немного шире взял. Т.е. в разных сессиях, параллельно 2 юзверя правят Один объект. У хибера один, это значит по id. Но в разных сессиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:47 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
И где же программирование, программисты? )))) Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 17:53 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVosttTsHeloWorlderДубли могут быть в РАЗНЫХ файлах. Т.е. нужно проверять наличие документа из файла с теми, что уже загружены в базу. Грузите всё в отдельную таблицу, потом делайте запрос на выявление и удаление дубликатов, потом сливайте данные. Я за этот вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 18:20 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Я за все варианты). БЛ может быть в базе и может коде c# кто базу не любит. Удачи аффтару! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 18:35 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123БЛ может быть в базе и может коде c# кто базу не любит. А можно до безумия любить базу, любить писать SQL запросы,.. и всё равно не размещать БЛ в базе, потому что интеллекта хватает — не делать таких глупых вещей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 18:43 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVostt, Дак ты сам предложил бл в базе). Я все варианты люблю если чё.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 19:12 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt, Дак ты сам предложил бл в базе). Я все варианты люблю если чё.)) Это не БЛ в базе. Просто сырые данные заливаются в специальные таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 19:21 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Главное верить что это не БЛ). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 19:32 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Главное верить что это не БЛ). Просто вставить данные? Это не БЛ. Иначе получается, что Вы считаете, что у ТС сейчас логика размазана по коду и БД, потому как вставка данных у него присутствует. Но Вы ведь так не считаете, верно? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 19:41 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Сущность в модели ДокументыВприхожейНаПолу будет? Если нет, то это обслуживающий код и данные. Если сервис обслуживания в базе, то это БЛ. Если этот же массив-коллекция-табличка в оперативке, то это БЛ не в базе. Попробуй хибером поработай со временной таблой. Если у него бардак на клиенте, то не надо свалку из бд делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 20:07 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Вопром опять в профессионализме. Как умеет, пусть делает. Он запрашивает обычный рядовой параметр объекта и удивился что ef полез в бд за СВЕЖИМИ данными) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 20:10 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123Если сервис обслуживания в базе, то это БЛ. Если этот же массив-коллекция-табличка в оперативке, то это БЛ не в базе. Я правильно понимаю, если приложение отправляет в базу SQL-запрос, это уже БЛ в базе данных? А как только данные получены в приложение и оно с ними работает, это уже БЛ в приложении? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 20:21 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVosttесли приложение отправляет в базу SQL-запрос, это уже БЛ в базе данных? а ты не ломай голову. Критерии появляются когда надо классифицировать и отделять одно от другого. Если это не требуется, то и вопроса нет. Все решения и подходы одинаковы как пылесосы. У ТСа БЛ - это загнать таблички XLS в базу))). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 22:42 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123Критерии появляются когда надо классифицировать и отделять одно от другого. Т.е. они сами по себе появляются? С языка слетают? Petro123Если это не требуется, то и вопроса нет. Любая область знаний требует систематизации, понятий и терминологии. Иначе специалисты будут вести себя как базарные бабки на лавочке, у каждого свои понятия, и каждый как хочет на любой лад их выкручивает. Petro123Все решения и подходы одинаковы как пылесосы. У ТСа БЛ - это загнать таблички XLS в базу))). Я эту задачу решал абсолютно разными способами. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 23:18 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVosttЛюбая область знаний требует систематизации, понятий и терминологии. Иначе специалисты будут вести себя как базарные бабки на лавочке, у каждого свои понятия, и каждый как хочет на любой лад их выкручивает. ну дак приводи свои термины. Я сказал про сущность - ты ноль реакции, только видео запостил. Код: c# 1.
так чё мы спорим? )) Мне оба решения нравятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 23:23 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVostt, лучше подскажи, NuGet пакеты и файлы надо в Git загонять или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 23:24 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Сущность в модели ДокументыВприхожейНаПолу будет? Если нет, то это обслуживающий код и данные. Если сервис обслуживания в базе, то это БЛ. Если этот же массив-коллекция-табличка в оперативке, то это БЛ не в базе. Попробуй хибером поработай со временной таблой. Если у него бардак на клиенте, то не надо свалку из бд делать. Что есть модель? Что такое сервис обслуживания в базе? И при чем тут вставка сырых данных куда-либо? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 23:55 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt, лучше подскажи, NuGet пакеты и файлы надо в Git загонять или нет? Хранить в репозитории? Нет, не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2017, 23:57 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Модель, это entity сущности, первая буква в ef Обслуживающий код это все что не там. Т.е. Логика ИС. Сырые от Несырых отличает бизнес логика. Даже в виде галочки или sql. Если приложение учетка - записал, прочитал. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:04 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Можно и со второй стороны рассмотреть. Есть одна или несколько коллекций в сессии из xls. Коллекцию сессионную можно разместить как в оперативке, так и базе. Если в базе, то мы логику переносим в базу. Если нет, то в приложение или на АппСервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:15 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAPetro123hVostt, лучше подскажи, NuGet пакеты и файлы надо в Git загонять или нет? Хранить в репозитории? Нет, не нужно. Спс Тоже склоняюсь с этому. Значит если чистая машина, то получит ошибку компиляции и доустановит в ide пакеты ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:18 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAпропущено... Хранить в репозитории? Нет, не нужно. Спс Тоже склоняюсь с этому. Значит если чистая машина, то получит ошибку компиляции и доустановит в ide пакеты Не получит, если перед сборкой выполнится restore. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:27 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt, лучше подскажи, NuGet пакеты и файлы надо в Git загонять или нет? Нет конечно! Надо развернуть свой NuGet-сервер, сборки на билд-сервере тоже упаковывать в NuGet, публиковать в feed и публиковать оттуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:48 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123Модель, это entity сущности, первая буква в ef Обслуживающий код это все что не там. Ток прочитал статью на хабре, чувак опечален, что Microsoft не создала свои абстракции поверх Entity Framework. Вот настолько продвинулось заболевание EF головного мозга. EF это всего лишь ORM, никаких моделей нет, есть одна модель базы данных, и классы, в которые EF запихивает содержание таблиц, затем отслеживает изменения в классах и запихивает изменения обратно. Инструмент безусловно классный и хороший, но не надо придумывать новую терминологию на EF и строить поверх свои теории. Бизнес-логика в базе данных, это ХП, функции, триггеры. И никакой EF тут не при чём. Выполнение клиентом SQL это не бизнес-логика в базе. Ни в какой вселенной. Petro123Сырые от Несырых отличает бизнес логика. Даже в виде галочки или sql. Если приложение учетка - записал, прочитал. Выдумали себе терминологию? Сырыми (RAW) данными называются необработанные данные, не имеющие чёткой спецификации. Спецификация СУБД насчёт хранимых данных — предельно чёткая. Так что не выдумывай пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:54 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123Можно и со второй стороны рассмотреть. Есть одна или несколько коллекций в сессии из xls. Коллекцию сессионную можно разместить как в оперативке, так и базе. Если в базе, то мы логику переносим в базу. Если нет, то в приложение или на АппСервер. Хорошо, давай по пунктам. 1. Есть у нас некий источник данных со своей структурой. В данном случае файл xls с плоской структурой; 2. Есть у нас приёмник данных - такая же плоская таблица, но уже в БД; 3. Есть некий загрузчик, написанный на C#, что умеет парсить xls-файл, знает как отображать структуру источника на структуру приёмника и, собственно, загружать данные из первого в последний без дополнительных проверок на дубликаты, орфографию и пунктуацию. И вот логика - это п. 3. И, очевидно, что она не в БД :) А дальнейшая обработка если будет реализована средствами СУБД, то логика обработки будет в БД. А если на C#, то логики обработки не будет в БД. Всё просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:37 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAбез дополнительных проверок на дубликаты, орфографию и пунктуацию. Зачем это загружать в сессии? В лапшекоде конечно нет никакой логики, бизнеса и смысла. Т.е. эта табла мусорница вне модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:00 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAА дальнейшая обработка Ок. Давай я скажу что вы НАЧАЛИ переносить бл в бж )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:02 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAбез дополнительных проверок на дубликаты, орфографию и пунктуацию. Зачем это загружать в сессии? В лапшекоде конечно нет никакой логики, бизнеса и смысла. Т.е. эта табла мусорница вне модели. What? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:05 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAА дальнейшая обработка Ок. Давай я скажу что вы НАЧАЛИ переносить бл в бж )))) What? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:05 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVosttнеобработанные данные, не имеющие чёткой спецификации.да! Спецификации по бизнесу и предметке. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:05 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Скажу по другому. БД для хранения не сырых данных, а данных по модели с хранением между сессиями. Временные в сессии делают для бл в бд. Но есть конечно исключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:09 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, Скажу по другому. БД для хранения не сырых данных, а данных по модели с хранением между сессиями. Временные в сессии делают для бл в бд. Но есть конечно исключения. Будет проще, если ты расскажешь какие видишь минусы в вышеописанном подходе. А то ведь он работает и работает хорошо. И никто его никогда не считал исключением :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:17 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Минус только один. Занафига вставлять в базу во Владике из Москвы ЗАВЕДОМО дубли. Но может автор не все рассказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:41 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#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 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAДаже если из файлов, то кто гарантирует, что файлы грузятся в рамках одной сессии? Он чё, дурак? Закоммитить в базу и спрашивать зачем ef лезет в базу? Всё в его руках. Хочет, пусть пачку до вечера готовит и потом заливает. Хочет, по одной вставляет. На сессионные дубли и межсессионные РАЗНЫЕ решения ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:30 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, попробуй IDbSet<TEntity>.Local ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:39 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
17-77, О, интересно. Пригодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 12:47 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Мил человек. Вам при вставке дубля нужно райзе от бд или тихо промолчать как будто его и небыло? hVostt вам задавал вопрос про update документа. Отвечать будем? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 13:03 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt вам задавал вопрос про update документа. Отвечать будем? Чёт не нашёл вопроса. Можешь повторить? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 13:17 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVostt, Блин, у skyANA было про обновление)). Он стратег, сразу вкурил) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 13:37 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt, Блин, у skyANA было про обновление)). Он стратег, сразу вкурил) То, что skyANA вкурил это замечательно.. Лучше скажи, что курил ты? Не поделишься травкой? Где вопрос про update дркумента? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 13:42 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
hVostt, В орм обновление делается так orm.session.SaveOrUpdate )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 13:46 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123TsHeloWorlder, Мил человек. Вам при вставке дубля нужно райзе от бд или тихо промолчать как будто его и небыло? hVostt вам задавал вопрос про update документа. Отвечать будем? Суть такая. В базе есть такая таблица Docs Id DocNumber SomeData1 'GW1' 'test....'2 'FS1' 'test...'2 'GW2' 'test...' Юзер загружает excel файл с точно такой-же структурой данных. Но проблема в том, что там могут быть данные которые имеют такие-же документы (с теми же DocNumber). Такие данные нужно отбросить. Просто проигнорировать. Первый раз вставили и все. В данном случае нельзя больше вставлять в таблицу документы с номерами GW1, GW2, FS1. Такая пока задача. Затем будет думать о том, чтобы не приходили такие грязные данные. Но пока задача стоит так. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:00 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Для целостности базы и модели добавить уникальный ключик на поле. В триггер before влепить одну строчку проверки на поле и exit без райзе молчком. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:08 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, но на самом деле я не пойму проблемы, вот способы как это сделать, чтобы не искать в локальном кэше EF: 1. читаем первый файл, складываем уникальные коды в Dictionary, читаем следующий файл, чистим от дублей с использованием этого Dictionary, потом в конце пишем все в базу 2. читаем первый файл, складываем уникальные коды в Dictionary, пишем первый файл в базу, читаем следующий файл, чистим от дублей с использованием этого Dictionary, пишем в базу 3. читаем первый файл, пишем первый файл в базу, делаем выбору всех существующих уникальных кодов из базы, складываем в Dictionary, читаем следующий файл, чистим от дублей с использованием этого Dictionary, пишем в базу 4. полностью делаем это средствами БД. например ms-sql умеет делать select по excel файлу, пишем в промежуточную таблицу, вторым sql запросом - перезаливаем без дублей в нужные таблицы. возможно получиться обойтись одним запросом, сразу лить в нужные таблицы 5. пишем тригер в базе, который перед вставкой будет проверять наличие дубля, как это подружить с EF - надо копать, хотя если потом просто убить контекст EF по завершении операции - то все думаю будет ок. варианты 1 и 2 кстати будут быстрее, чем поиск по локальному кэшу EF, потому что Dictionary варианты 4 и 5 не прокатят, если у вас на EF повешана дополнительная логика, типа подписка на события при вставке, обновлении и удалении сущностей, всю эту бизнес логику придется дублировать в базе ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:12 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
забыл, перед чтением первого файла - Dictionary можно составить на основе уже существующих записей в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:14 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
еще забыл, в 5 варианте можно оптимизировать - добавить уникальный некластерный индекс, или уникальный код документа сделать первичным ключом с кластерным индексом ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:18 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
вариант 3 на тот случай, если загрузка файлов разнесена по времени, и нет возможности где-то временно сохранить Dictionary ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:22 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
17-77, Все верно. Но п.5 если не один заливает. А иначе зачем сервак? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:25 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, не понял вопроса? я имел ввиду, что если потом из этого контекста что-то прочитать - думаю у него моск взорвется, потому что в контексте есть некая запись, а в базе ее нет, потому что тригер нашел дубль и разумеется все это при условии, что заливать будет контекст EF, если ado.net - то пофик собственно-то ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:28 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
17-77, Да. Совершенно верно. Я бы для начала ТСу проставить ключик и обработать (загасить) райзе от него. Возможно ему этого хватит. Нефиг спрашивать Базу про дубликаты. Она сама скаже. На то она и База с большой буквы))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:45 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAДаже если из файлов, то кто гарантирует, что файлы грузятся в рамках одной сессии? Он чё, дурак? Закоммитить в базу и спрашивать зачем ef лезет в базу? Всё в его руках. Хочет, пусть пачку до вечера готовит и потом заливает. Хочет, по одной вставляет. На сессионные дубли и межсессионные РАЗНЫЕ решения Кто он? Функционал-то он небось не для себя реализует. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:52 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder Юзер загружает excel файл... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:52 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123hVostt, Блин, у skyANA было про обновление)). Он стратег, сразу вкурил)Это называется расширяемость. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:53 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123TsHeloWorlder, Для целостности базы и модели добавить уникальный ключик на поле. В триггер before влепить одну строчку проверки на поле и exit без райзе молчком. Всё. То есть предлагаешь строго только построчно заливать? Потому как если сотня строк вставляется и одна из них уже есть в БД, то 99 молча не заливаются. А пользователь сидит и думает: вроде ошибок нет, но и данные в БД тоже не появляются, дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 14:59 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAPetro123hVostt, Блин, у skyANA было про обновление)). Он стратег, сразу вкурил)Это называется расширяемость. Впервые слышу в данном контексте. Про триггер ты прав. Нету его без райзе с молчаливым выходом. На уровне ef надо гасить или saveOrUpdate в ОРМ. Которое он так хочет. Будет без велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 15:13 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Эта инфа устарела? авторИз коробки, в MS Entity Framework есть неприятность с пакетным обновлением и удалением, данных: необходимо сначала достать все объекты из бд, далее в цикле обновить\удалить и затем применить изменения к бд. В итоге получаем больше обращений к бд, чем нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 15:33 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123skyANAпропущено... Это называется расширяемость. Впервые слышу в данном контексте. Расширяемость - это легкость адаптации ПО к изменениям спецификации. Petro123Про триггер ты прав. Нету его без райзе с молчаливым выходом. На уровне ef надо гасить или saveOrUpdate в ОРМ. Которое он так хочет. Будет без велосипедов. Вы зациклились на ef. ИМХО ничего не надо гасить. Мне видится, что нужно показать пользователю, что вот эти записи успешно загружены, а эти нет, потому как уже есть в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 15:37 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANA, Чисто потому что мне ef будет в следующем проекте))). А ТС так прямо и сказал что ...хочу его )). Без ef и его коллекций вообще нет проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 16:05 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, Я не то чтобы его хочу. Просто он уже есть. И хотелось бы задействовать его для решения этой задачи - раз он есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 16:10 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlder, Уникальный индекс поставил? Ошибку юзверю показал? Это всё равно делать в любом случае. А не 5 страниц мусолить. Про saveOrUpdate чем тебя не устроит если он обновит запись? Это штатная работа ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 16:24 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
Petro123, Индекс стоит уже конечно. ну ладно в общем. идею я понял, спасибо. Тему можно и закрывать ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 17:24 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
17-77варианты 1 и 2 кстати будут быстрее, чем поиск по локальному кэшу EF, потому что Dictionary Не надо искать по локальному кешу. Это плохая практика. Кеш не для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 18:02 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
skyANAВы зациклились на ef. ИМХО ничего не надо гасить. Мне видится, что нужно показать пользователю, что вот эти записи успешно загружены, а эти нет, потому как уже есть в БД. +100500, чё вы к EF привязались, пристали как банный лист! Задача выходит за рамки ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 18:03 |
|
Как искать сущности, которые еще не сохранены в бд, т.е. которые пока только локальные ?
|
|||
---|---|---|---|
#18+
TsHeloWorlderPetro123, Я не то чтобы его хочу. Просто он уже есть. И хотелось бы задействовать его для решения этой задачи - раз он есть. Ты можешь задействовать EF, но только не его ORM часть. Тебе надо запихать грязные данные в БД, чтобы потом их очистить, и БД как нельзя лучше создана для этого, выполняешь запрос, который берёт только уникальные записи из «грязной» таблицы, при чём такие, которых нет в «чистой». В EF таких механизмов нет. Ни в какой ORM их нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 18:05 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349268]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 337ms |
0 / 0 |