Здравствуйте,Проблема с обновлением результатов LINQ с анонимным типом ... только для чтения?
Я изучаю LINQ и столкнулся с проблемой. Я создал простой запрос против db northwind, и я формирую поля, которые должны быть возвращены. Проблема заключается в том, что после запуска я не могу изменить какие-либо поля в моем 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>
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();
}
Вы, ребята, можете сказать, что это проблема для вар анонимного типа .Но я всегда нужно использовать анонимный type.How решить эту проблему
Вы не можете изменить поля, как? Какой код вы используете, чтобы попытаться изменить поля? Какую ошибку вы получаете? – Gabe
В примере, который вы предоставили, я вижу назначение 'var r', но где' lresult' создается/заполняется? Кроме того, я не понимаю, что вы подразумеваете под «Мне всегда нужно использовать анонимный тип». Вы должны использовать все, что поддерживает 'IEnumerable' для вашего источника данных. Кроме того, наличие такого кода, голого в «Page_Load» без проверки «IsPostback», может быть вероятной проблемой, так как данные сетки будут восстановлены и восстановлены при каждой обратной передаче, что делает редактирование практически невозможным. –
извините за lresult.after используйте это, я не могу изменить свои поля. Почему бы вам не проверить себя? – shamim