Asp.net 当数据源为列表时,LinqDataSource的ContextTextType和TableName<;字符串>;

Asp.net 当数据源为列表时,LinqDataSource的ContextTextType和TableName<;字符串>;,asp.net,linqdatasource,Asp.net,Linqdatasource,我有一个定义如下的LinqDataSource: <asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource_FileSelecting"></asp:LinqDataSource> 在LinqDataSource_FileSelecting中,它返回/设置一个列表给e.Result,其中e是LinqDataSource的Selecting事件中的EventA

我有一个定义如下的LinqDataSource:

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

在LinqDataSource_FileSelecting中,它返回/设置一个
列表
给e.Result,其中e是LinqDataSource的Selecting事件中的EventArgs(LinqDataSource SelectEventArgs)。当页面加载时,我遇到此错误:

“LinqDataSource“LinqDataSource1”的ContextTypeName属性必须指定数据上下文类型。”

基于此消息并查看文档,我需要设置LinqDataSource的ContextTypeName和TableName属性。ContextTypeName通常是类的名称,TableName是该类中可枚举属性的名称

当数据源是
列表时
我不确定可以分配什么样的ContextTypeName或TableName。我尝试了ContextTypeName的
System.Collections.Generic.List
,但没有成功,我收到了“无法加载类型”
System.Collections.Generic.List


我意识到当数据源是在选择事件中生成的
列表时,LinqDataSource可能不是合适的控件。但是,我是否可以为此场景设置ContextTypeName和TableName?

找到了答案。事实证明,在使用Selecting事件并将
列表分配给e.Result时,可以忽略ContextTypeName和TableName。但是,如果将
null
分配给e.Result,则会发生此错误,因为ASP.NET不知道数据的类型。我在Selecting事件上的代码旨在将非null值设置为e.Result,但另一个问题导致将null设置为e.Result。。。导致这个错误