使用匿名类型更新LINQ结果时出现问题...只读?

sha*_*mim 2 linq asp.net asp.net-3.5

你好,

我正在学习LINQ并遇到了一个问题.我创建了一个针对northwind db的简单查询,我正在塑造应该返回的字段.问题是运行后,我无法修改我的AspxGridView中的任何字段.

<dxwgv:ASPxGridView ID="ASPxGridView1" runat="server" 
    AutoGenerateColumns="False" KeyFieldName="CategoryID">
    <Columns>
        <dxwgv:GridViewCommandColumn VisibleIndex="0">
            <EditButton Visible="True">
            </EditButton>
            <NewButton Visible="True">
            </NewButton>
            <DeleteButton Visible="True">
            </DeleteButton>
        </dxwgv:GridViewCommandColumn>
        <dxwgv:GridViewDataTextColumn Caption="CategoryID" FieldName="CategoryID" 
            VisibleIndex="1">
        </dxwgv:GridViewDataTextColumn>
        <dxwgv:GridViewDataTextColumn Caption="CategoryName" FieldName="CategoryName" 
            VisibleIndex="2">
        </dxwgv:GridViewDataTextColumn>
        <dxwgv:GridViewDataTextColumn Caption="Description" FieldName="Description" 
            VisibleIndex="3">
        </dxwgv:GridViewDataTextColumn>
    </Columns>
</dxwgv:ASPxGridView>
Run Code Online (Sandbox Code Playgroud)

C#语法:

protected void Page_Load(object sender, EventArgs e)
{
    NorthwindDataContext db = new NorthwindDataContext();
    var r = db.Categories
        .Select(p=>new {p.CategoryID,p.CategoryName,p.Description});
    ASPxGridView1.DataSource = r;
    ASPxGridView1.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

你们可能会说这是var匿名类型的问题.但我总是需要使用匿名类型.如何解决这个问题

sgm*_*ore 5

不要以为这是可能的.

匿名类型是由一个或多个公共只读属性组成的类类型.

引用自http://msdn.microsoft.com