Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示嵌套匿名类型_C#_Asp.net_Entity Framework_Gridview_Ado.net - Fatal编程技术网

C# 显示嵌套匿名类型

C# 显示嵌套匿名类型,c#,asp.net,entity-framework,gridview,ado.net,C#,Asp.net,Entity Framework,Gridview,Ado.net,我试图在GridView控件中显示嵌套的匿名类型。但是GridView控件只显示OrderID和OrderDate字段(即,它不显示嵌套类型) 我正在使用以下代码: protected void btn2_Click(object sender, EventArgs e) { using (EStoreEntities ctx2 = new EStoreEntities()) { var query = (from o in ctx2.Orders

我试图在GridView控件中显示嵌套的匿名类型。但是GridView控件只显示OrderID和OrderDate字段(即,它不显示嵌套类型)

我正在使用以下代码:

protected void btn2_Click(object sender, EventArgs e)
{
    using (EStoreEntities ctx2 = new EStoreEntities())
    {    
        var query = (from o in ctx2.Orders
                     select new 
                     { 
                        o.OrderID, 
                        o.OrderDate,
                        nest_anon = new 
                        { 
                            o.Customer, 
                            o.ShipAddress,
                            o.Status 
                        }
                    });    

        tb2.Text = (query as ObjectQuery).ToTraceString();                 
        gv2.DataSource=query;
        gv2.DataBind();
    }    
}

要在GridView中显示匿名和嵌套的匿名类型,我应该在代码中修复什么?

您将无法执行此操作,因为匿名类型仅对其定义的范围有效,即按钮单击事件处理程序


您需要创建一个实际类型,然后确定如何在网格中显示该类型。

是否有错误?您能告诉我们您的GridView标记在哪里显示嵌套的对象数据吗?为什么需要嵌套它?只需展平对象以显示在栅格视图中。这是不正确的。匿名类型可以在创建它们的方法之外返回和使用。Chris,你知道我应该创建一个适合我的linq结果的类型类吗?@jason-请给出一个解释方法的答案。@Michael-是的。虽然jason可能是正确的,但使用命名类可能更简单。Chris,类中的嵌套匿名类型必须是什么类型?必须是复杂类型吗?