Entity Framework - избегая другого запроса - PullRequest
0 голосов
/ 17 июня 2010

У меня есть требование сохранять данные только в таблицу в базе данных (мне не нужно их читать)

Если запись уже существует, я хочу обновить ее, в противном случае я добавлю ее. Это обычно существует.

Мой контекст сущности может уже содержать объект ... если он захочет найти его и использовать снова, не заставляя его обновляться из базы данных, когда я "найду" его

т.е. Контекст содержит коллекцию сущностей (строки базы данных). Я хочу найти сущность в коллекции и хочу, чтобы контекст попадал в базу данных только в том случае, если сущности нет в коллекции. Мне плевать на текущие значения объекта .. Я просто хочу обновить их.

Надеюсь, это понятно ..... спасибо

Ответы [ 2 ]

3 голосов
/ 17 июня 2010

Возможно, я не совсем вижу вопрос, но я верю, что вы ищете какой-то механизм кэширования, я знаю, что для работы мы используем devForces IdeaBlade, который делает свое дело, однако я считаю, что вы можете создать простой механизм кэширования, настроенный для вас.Нужны.

http://blogs.msdn.com/b/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery.aspx

Биты при кэшировании будут полезны, если это не поможет, и я смогу копнуть немного глубже.

2 голосов
/ 17 июня 2010

Я считаю, что вам нужно использовать GetObjectByKey () вместо использования ObjectQuery. Я считаю, что ObjectQuery всегда попадает в хранилище данных бэкенда, каким бы оно ни было.

Подробнее здесь http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.getobjectbykey.aspx

...