Загруженный объект не возвращается - PullRequest
1 голос
/ 09 сентября 2010

Вероятно, это полная ошибка noobie.

Моя глубокая загрузка загружает мой соответствующий разрешенный штраф, и T Entity правильно заполнена, но когда я возвращаюсь к исходному вызову, он не сохраняет обновления?

Теперь я уверен, что EntityObjects являются ссылочными типами (глупый вопрос, но я здесь сомневаюсь)

Так что мне не нужно возвращать его обратно.

вот мой глубокий груз:

   public void DeepLoad(T entity, Type[] childTypes)
    {
           Type baseType;
           HasBaseType(typeof (T), out baseType);
           var entitySetName = ProviderHelper.GetEntitySetName(Context, baseType.Name);

           var query = Context.CreateQuery<T>(entitySetName);

           foreach (var childType in ProviderHelper.GetChildTypeNames(childTypes).Split(','))
           {
                  query = query.Include(childType);
           }
                  entity = query.SingleOrDefault();
}

любая помощь, включая указание пальцем и смех, не допускается:)

1 Ответ

0 голосов
/ 10 сентября 2010

Похоже, что EntityObjects являются типами значений, а не ссылочными типами, потому что, когда я изменяю свой метод на приведенный ниже, все это работает как следует.

public void DeepLoad(ref T entity, Type[] childTypes)
{

    Type baseType;
    HasBaseType(typeof (T), out baseType);
    var entitySetName = ProviderHelper.GetEntitySetName(Context, baseType.Name);

    var query = Context.CreateQuery<T>(entitySetName);

    foreach (var childType in ProviderHelper.GetChildTypeNames(childTypes).Split(','))
    {
        query = query.Include(childType);
    }
    entity = query.SingleOrDefault();
}

Я все еще думаю, что я что-то здесь упускаю, хотя ... какие-либо взгляды на это?

...