EF4: Как перезагрузить / обновить коллекцию EntityCollection? - PullRequest
0 голосов
/ 09 октября 2010

Использование Entity Framework 4.0 в C # / .NET 4.0.

В моей модели Entity у меня есть объект (MyObject), который является частью одного ко многимотношение, которое создает свойство навигации типа EntityCollection<OtherObject>.Фрагмент сгенерированного кода:

public partial class MyObject : EntityObject
{
    /* other code */

    public EntityCollection<OtherObject> OtherObjects
    {
        get { /* RelationshipManager stuff */ }
        set { /* RelationshipManager stuff */ }
    }

    /* other code */
}

Я прекрасно загружаю данные, все хорошо.Затем другой процесс добавляет строки в базовую таблицу OtherObject.Я хочу иметь возможность перезагрузить или обновить мою коллекцию сущностей, чтобы получить доступ к этим новым объектам.

Есть ли какой-нибудь возможный способ сделать это?Ни одна из следующих попыток не выполняет задачу:

Context.Refresh(RefreshMode.StoreWins, myObject);
Context.Refresh(RefreshMode.StoreWins, myObject.OtherObjects);

Я бы хотел избежать необходимости выгружать весь контекст (так как это приведет к сохранению любой измененной в данный момент информации, что нежелательно), так жеЕсть ли способ получить недавно добавленные данные в мою локальную модель сущности?

Спасибо.

1 Ответ

2 голосов
/ 09 октября 2010
myObject.OtherObjects.Clear();
Context.AcceptAllChanges();
myObject.OtherObjects.Load();

Отказ от ответственности: не проверено.

...