从单独的 DataContext 更新 LinqDataSource

发布于 2024-07-22 13:38:15 字数 178 浏览 6 评论 0原文

我想使用从不同 DataContext 检索到的记录来更新一个 LinqDataSource。 问题是 LinqDataSource 的 DataContext 似乎没有公开,因此我无法访问它以将新对象附加到 DataSource 的上下文。

这样做的正常方法是什么? 或者我应该废弃 LinqDataSource

I want to update one LinqDataSource with a record retrieved from a different DataContext. The problem is that the DataContext of the LinqDataSource doesn't seem to be made public so I can't get access to it to attach the new object to the DataSource's context.

What is the normal way of doing this? Or should I just scrap the LinqDataSource

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

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

发布评论

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

评论(1

远昼 2024-07-29 13:38:15

这是有充分理由的 - 您不能在不同的 DataContext 之间共享对象。

如果您使用 LinqDataSource 的 OnContextCreating 事件,您可以将正确的实例附加到数据源 [即从中检索第二个实体的实例],以便它们都来自同一个 DataContext:

ASPX:

<asp:LinqDataSource .... OnContextCreating="GetDataContext" ... />

C#:

protected void GetDataContext(object sender, LinqDataSourceContextEventArgs e)
{
    e.ObjectInstance = MyDataContext.Current; // assuming that Current is the ambient instance
}

Good reason for that - you can't share objects across different DataContexts.

If you use the LinqDataSource's OnContextCreating event you can attach the correct instance to the data source [ie, that which the second entity is retrieved from] so they're both from the same DataContext:

ASPX:

<asp:LinqDataSource .... OnContextCreating="GetDataContext" ... />

C#:

protected void GetDataContext(object sender, LinqDataSourceContextEventArgs e)
{
    e.ObjectInstance = MyDataContext.Current; // assuming that Current is the ambient instance
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文