Linq to sql 枚举实体子项

Linq to sql 枚举实体子项,linq-to-sql,Linq To Sql,我需要创建一个方法,该方法将Linq转换为sql实体,并返回其所有子实体(仅第一代)EntitySet的列表,而不包含EntitySet包含的任何数据,只返回名称。我有办法做到吗?谢谢如果我正确理解了您的问题,您可以检查数据上下文实例的元模型。元模型描述模型中的表、列和关联。基本上,您希望查看表上的关联,其中关联为1对多 这并不涉及检索任何数据,因为您实际上并不是在处理实体实例,而是描述它们的信息 此代码应执行以下操作: public static string[] GetChildEntiti

我需要创建一个方法,该方法将Linq转换为sql实体,并返回其所有子实体(仅第一代)EntitySet的列表,而不包含EntitySet包含的任何数据,只返回名称。我有办法做到吗?谢谢

如果我正确理解了您的问题,您可以检查数据上下文实例的元模型。元模型描述模型中的表、列和关联。基本上,您希望查看表上的关联,其中关联为1对多

这并不涉及检索任何数据,因为您实际上并不是在处理实体实例,而是描述它们的信息

此代码应执行以下操作:

public static string[] GetChildEntities<T>(DataContext context, T entity)
{
   var mapping = context.Mapping.GetTable(typeof(T));
   return mapping.RowType.Associations.Where(a => a.IsMany)
                                      .Select(a => a.ThisMember.Name).ToArray();
}

如果我正确理解了您的问题,您可以检查数据上下文实例的元模型。元模型描述模型中的表、列和关联。基本上,您希望查看表上的关联,其中关联为1对多

这并不涉及检索任何数据,因为您实际上并不是在处理实体实例,而是描述它们的信息

此代码应执行以下操作:

public static string[] GetChildEntities<T>(DataContext context, T entity)
{
   var mapping = context.Mapping.GetTable(typeof(T));
   return mapping.RowType.Associations.Where(a => a.IsMany)
                                      .Select(a => a.ThisMember.Name).ToArray();
}

是的,这就是我要找的,谢谢你指向那个方向。我的目标是创建一个同时接受子实体和父实体的方法,将“ThisMember”强制转换为适当的entityset,并在其中添加一个子实体,不管它是什么类型。你能帮我吗?你的方法绝对是正确的一步。这种方法甚至可以用于断开连接的实体,非常感谢,这就是我要寻找的,感谢你指向那个方向。我的目标是创建一个同时接受子实体和父实体的方法,将“ThisMember”强制转换为适当的entityset,并在其中添加一个子实体,不管它是什么类型。你能帮我吗?您的方法绝对是正确的一步。此方法甚至适用于断开连接的实体,非常感谢