已加载的实体未被传回

时间:2010-09-08 21:08:43

标签: c# .net entity-framework-4 reference-type

这可能是一个完整的noobie错误。

我的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();
}

包括指责和笑声在内的任何帮助除外:)

1 个答案:

答案 0 :(得分: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();
}

我仍然认为我在这里遗漏了一些东西......对此有什么看法?