1

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

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

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

4

1 回答 1

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

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

于 2010-09-10T10:02:46.210 回答