powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF 5 - можно обновить записи в БД не загружая их?
25 сообщений из 36, страница 1 из 2
EF 5 - можно обновить записи в БД не загружая их?
    #38421828
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Везде видел примеры, где либо с запросом записи, типа db.MyTable.First(...), либо уже загруженную ранее запись (надо думать, с помощью другого контекста или созданием экземпляра этой записи без контекста вообще) аттачили к контексту. А можно, как с обычным запросом SQL - update в такой-то таблице по такому-то фильтру такие-то столбцы?

Конкретно, проблема такая. Есть таблица, где одно из полей - картинка типа varbinary(max), а остальные - лёгкие поля, типа текста и чисел. Мне надо обновить только текст или числа - для этого обязательно надо грузить всю запись с полем varbinary(max)?
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38421831
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да. Желательно, обновления такие, без загрузки, делать через какой-нибудь foreach - вобщем, в цикле.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38421877
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А можно, как с обычным запросом SQL - update в такой-то таблице по такому-то фильтру такие-то столбцы?Через SqlQuery("update ...").

user7320Мне надо обновить только текст или числа - для этого обязательно надо грузить всю записьА как же? Это объектное представление записи, объект с потолка что ли значения возьмет?
user7320с полем varbinary(max)?Разве EF поддерживает тип varbinary?
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422017
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyuser7320А можно, как с обычным запросом SQL - update в такой-то таблице по такому-то фильтру такие-то столбцы?Через SqlQuery("update ...").
Не, мне надо понтово - фреймворково.

Antonariyuser7320с полем varbinary(max)?Разве EF поддерживает тип varbinary?
А нафиг он был бы нужен, если бы не поддерживал? varbinary(max) у меня отображается в byte[] (DB First).

Antonariyuser7320Мне надо обновить только текст или числа - для этого обязательно надо грузить всю записьА как же? Это объектное представление записи, объект с потолка что ли значения возьмет?
Мне всё равно, как он и откуда что возьмёт, но я не хочу грузить изображение с его описанием, чтобы поменять только описание. Это с EF сделать можно?
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422019
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе, мне надо понтово - фреймворково.
Я имею ввиду, зачем использовать EF, если писать запрос руками?

Ну неужели надо сначала в контекст данные ЦЕЛИКОМ загрузить, чтобы просто обновить их в БД? Может, можно какую-нибудь облегченную модель, типа один айдишник, которой поменял описание только, а все остальные поля отсутствуют. Потом эту модель отправил в БД, но при этом все остальные поля в этой записи в БД не похерились.

Или для вот таких случаев - просто обновить записи в БД без запроса - как раз и придуман SqlQuery(...)?
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422036
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, попробуй вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var updatedUser = new User();
updatedUser.Id = 1;
updatedUser.Email = "newemail@example.com";

db.Users.Attach(updatedUser);
var entry = db.Entry(updatedUser);
entry.Property(e => e.Email).IsModified = true;
// other changed properties
db.SaveChanges();



http://stackoverflow.com/a/15339512
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422073
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileuser7320, попробуй вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var updatedUser = new User();
updatedUser.Id = 1;
updatedUser.Email = "newemail@example.com";

db.Users.Attach(updatedUser);
var entry = db.Entry(updatedUser);
entry.Property(e => e.Email).IsModified = true;
// other changed properties
db.SaveChanges();



http://stackoverflow.com/a/15339512
Да-да, я такое встречал. Я вот и спрашиваю, а не сотрёт ли это картинку из записи, если обновить ей только поле мыла, причём записью, в которой поле картинки - null? Потестить смогу только завтра.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422075
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штука в том, что по вашей ссылке везде используется updatedUser, который уже как-то когда-то был достан из БД - т. е. это полноценный юзер, без обрезанных (занулённых) полей.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422084
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320bazileuser7320, попробуй вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var updatedUser = new User();
updatedUser.Id = 1;
updatedUser.Email = "newemail@example.com";

db.Users.Attach(updatedUser);
var entry = db.Entry(updatedUser);
entry.Property(e => e.Email).IsModified = true;
// other changed properties
db.SaveChanges();



http://stackoverflow.com/a/15339512
Да-да, я такое встречал. Я вот и спрашиваю, а не сотрёт ли это картинку из записи, если обновить ей только поле мыла, причём записью, в которой поле картинки - null? Потестить смогу только завтра.
Мне тут сказали, что не сотрёт. Завтра попробую.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422154
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422160
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Мне всё равно, как он и откуда что возьмёт, но я не хочу грузить изображение с его описанием, чтобы поменять только описание. Это с EF сделать можно?Сделай представление, в котором нет этого поля.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422166
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyuser7320Сделай представление, в котором нет этого поля.
Выпей яду.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422181
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Давай абстрагируемся от автора топика, впрочем ему это и не понять..
Вот у нас таблица member, там мы все спихивали в кучу, и пол и адрес, и сексуальную ориентацию, и описание, и в конце блоб
с его фоткой, можно? - конечно можно, многие денормализованные идиоты так и делают, но ничто те вечно , когда то и заказчик проспится ( дурак никогда) и потребует что бы было фото в фас в профиль или еще как, добавлять поля ((?
как легче? вынести все тяжелые поля в отдельную таблицу и связать их форином через id member... и все..
теперь, если мы будем делать проекцию в орм таблицы member, у на появится в member одно поле Image Foto{get;set;} связанной сущности с ленивой загрузкой - все просто..
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422285
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyuser7320Мне всё равно, как он и откуда что возьмёт, но я не хочу грузить изображение с его описанием, чтобы поменять только описание. Это с EF сделать можно?Сделай представление, в котором нет этого поля.
У меня здесь нет представлений. Я делаю консольную утилитку для обновления БД и всяких тестов.

Где-то в степиAntonariy,
Давай абстрагируемся от автора топика, впрочем ему это и не понять..
Вот у нас таблица member, там мы все спихивали в кучу, и пол и адрес, и сексуальную ориентацию, и описание, и в конце блоб
с его фоткой, можно? - конечно можно, многие денормализованные идиоты так и делают, но ничто те вечно , когда то и заказчик проспится ( дурак никогда) и потребует что бы было фото в фас в профиль или еще как, добавлять поля ((?
как легче? вынести все тяжелые поля в отдельную таблицу и связать их форином через id member... и все..
теперь, если мы будем делать проекцию в орм таблицы member, у на появится в member одно поле Image Foto{get;set;} связанной сущности с ленивой загрузкой - все просто..
Заказчик же может не только это попросить, но ещё и три пола добавить, пять ориентаций, цвет волос и перечислитель всех родственников до 7 колена (но только в засисимости от пола, которых три). Поэтому все, кто делают БД без EAV - ретарды.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422407
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степикак легче? вынести все тяжелые поля в отдельную таблицу и связать их форином через id member... и все..
Вообще не вижу плюсов от подобной декомпозиции. Если бизнес-правилами определено 3 картинки у эмплоя, не вижу проблем добавить 3 поля в ту же таблицу. Единственный плюс в разнесении блобов (в отдельную базу) - оптимизация резервного копирования основной БД и ее восстановления.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422436
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степитеперь, если мы будем делать проекцию в орм таблицы member, у на появится в member одно поле Image Foto{get;set;} связанной сущности с ленивой загрузкой - все просто..Я еще не избавился от стереотипов датасетного программирования и не знаю всех бест-практикс EF :)
Конечно, по сравнению с этим вариант с вьюшкой заслуживает яду.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422700
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

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

Ибо ситуация, при которой ты:
1. Достаешь объект из контекста.
2. Выходишь из зоны использования контекста.
3. Пытаешься записать контекст обратно (а для этого надо в новый контекст вытащить все объекты, с которыми записываемый объект связан)

- меня вымораживает.

А так - все ключи "ношу с собой", люди в курсе. Без проблем читаю, достаю, записываю.

А image держал бы в другой таблице и доставал по ключу. И всё.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422825
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosВсе эти ЕФ - фигня для детей.
и что прости по вашему для взрослых?

ТС юзайте на здоровье https://www.nuget.org/packages/EntityFramework.Extended но за целостность сами будете нести ответственность

п.с. если кто то не умеет готовить еф эт его проблемы.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422831
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

готовит готовое как то не звучит, типа микроволновка нужна что ль?
В Випрос поля помечаются, типа загрузить по требованию, показать муляж, сделать невидимым и т.д.
и ниче готовить не надо, проще микроволновки
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422835
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, готовить означает уметь пользоваться, давай ребенку базуку он из не выстрелит ..вопрос куда и в кого попадет. о госпади какой то велик использовать в продакшене ..нет уж спасибо
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422845
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosAntonariy, точно так же делается и с датасет, и грузится по требованию. Хотя с датасет еще проще, можно и не разбивать таблицу, но не загрузить большие данные сразу. Все эти ЕФ - фигня для детей.
Сахават, хорош бредятину писать.
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422877
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot МСУ]ViPRosAntonariy, точно так же делается и с датасет, и грузится по требованию. Хотя с датасет еще проще, можно и не разбивать таблицу, но не загрузить большие данные сразу. Все эти ЕФ - фигня для детей.
Сахават, хорош бредятину писать.[/quot
да токо и слышу это низзя и это низзя, но велик хорош:)
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422882
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuViPRos, готовить означает уметь пользоваться, давай ребенку базуку он из не выстрелит ..вопрос куда и в кого попадет. о госпади какой то велик использовать в продакшене ..нет уж спасибо
какой еще у тя продакшн? книга телефонная что ли?
...
Рейтинг: 0 / 0
EF 5 - можно обновить записи в БД не загружая их?
    #38422894
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
а не надо дерзить "вася". свой непонятный велик впаривать супер не профессионально
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF 5 - можно обновить записи в БД не загружая их?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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