当数据源为 List时,LinqDataSource 的 ContextTextType 和 TableName

发布于 2024-10-30 06:30:27 字数 982 浏览 0 评论 0原文

我有一个像这样定义的 LinqDataSource:

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

在 LinqDataSource_FileSelecting 中,它返回/设置一个 List 到 e.Result,其中 e 是 LinqDataSource 的 Selecting 事件中的 EventArgs (LinqDataSourceSelectEventArgs)。加载页面时出现此错误:

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

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

当数据源是 List 时,我不确定可以分配什么 ContextTypeName 或 TableName。我已尝试使用 System.Collections.Generic.List 作为 ContextTypeName,但这不起作用,我收到“无法加载类型 'System.Collections.Generic.List< ;string>'"

我意识到,当数据源是 Selecting 事件中生成的 List 时,LinqDataSource 可能不是合适的控件。但是我可以为这种情况设置 ContextTypeName 和 TableName 吗?

I have a LinqDataSource defined like this:

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

In LinqDataSource_FileSelecting, it returns/sets a List<string> to e.Result, where e is the EventArgs (LinqDataSourceSelectEventArgs) in the Selecting event of the LinqDataSource. I'm getting this error when the page loads:

"The ContextTypeName property of LinqDataSource 'LinqDataSource1' must specify a data context type."

Based on this message and looking at the docs, I need to set the ContextTypeName and TableName properties of the LinqDataSource. ContextTypeName would normally be the name of a class, and TableName would be the name of an enumerable property within that class.

When the data source is a List<string> I'm not sure what ContextTypeName or TableName I can assign. I've tried System.Collections.Generic.List<string> for the ContextTypeName, but that didn't work, I received "Could not load type 'System.Collections.Generic.List<string>'"

I realize the LinqDataSource may not be the appropriate control when the data source is a List<string> generated within the Selecting event. But is there a ContextTypeName and TableName I can set for this scenario?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澉约 2024-11-06 06:30:27

找到了答案。事实证明,在使用 Selecting 事件并将 List 分配给 e.Result 时,您可以省略 ContextTypeName 和 TableName。但是,如果将 null 分配给 e.Result,则会出现此错误,因为 ASP.NET 不知道数据的类型。我关于 Selecting 事件的代码旨在为 e.Result 设置一个非空值,但一个单独的问题导致将 null 设置为 e.Result ...导致此错误。

Found the answer. Turns out that you can omit ContextTypeName and TableName when using the Selecting event and assigning a List<string> to e.Result. However, if you assign null to e.Result, then this error will occur since ASP.NET doesn't know the type of data. My code on the Selecting event was designed to set a non-null value to e.Result, but a separate problem was leading to null being set to e.Result ... leading to this error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文