2010-09-08 2 views
1

Это, вероятно, полная ошибка noobie.Загруженный объект не возвращается

My deepload загружает мой связанный штраф и 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(); 
} 

любая помощь в том числе виноватых и смех исключено :)

ответ

0

Похоже 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(); 
} 

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

Смежные вопросы