1

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

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

4

1 回答 1

1

很好的理由 - 您不能在不同的 DataContexts 之间共享对象。

如果您使用 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
}
于 2010-02-02T09:50:14.803 回答