ContextTextType и TableName для LinqDataSource, когда источником данных является List <string> - PullRequest
3 голосов
/ 06 апреля 2011

У меня есть LinqDataSource, определенный следующим образом:

<asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource_FileSelecting"></asp:LinqDataSource>

В LinqDataSource_FileSelecting он возвращает / устанавливает List<string> для e.Result, где e - это EventArgs (LinqDataSourceSelectEventArgs) в событии Selecting LinqDataSource. Я получаю эту ошибку при загрузке страницы:

"Свойство ContextTypeName LinqDataSource 'LinqDataSource1' должно указывать тип контекста данных."

На основе этого сообщения и просмотра документов мне нужно установить свойства ContextTypeName и TableName в LinqDataSource. ContextTypeName обычно будет именем класса, а TableName будет именем перечислимого свойства в этом классе.

Когда источником данных является List<string> Я не уверен, что ContextTypeName или TableName я могу назначить. Я попытался System.Collections.Generic.List<string> для ContextTypeName, но это не сработало, я получил "Не удалось загрузить тип 'System.Collections.Generic.List<string>'"

Я понимаю, что LinqDataSource не может быть подходящим элементом управления, когда источником данных является List<string>, сгенерированный в событии Selecting. Но есть ли ContextTypeName и TableName, которые я могу установить для этого сценария?

1 Ответ

10 голосов
/ 07 апреля 2011

Нашел ответ.Оказывается, вы можете не указывать ContextTypeName и TableName при использовании события Selecting и назначении List<string> для e.Result.Однако если вы назначите null для e.Result, то эта ошибка произойдет, так как ASP.NET не знает тип данных.Мой код в событии Selecting был разработан для установки ненулевого значения e.Result, но отдельная проблема привела к тому, что для нулевого значения было установлено значение e.Result ... что привело к этой ошибке.

...