我想用从另一个 DataContext 检索到的记录来更新一个 LinqDataSource。问题是 LinqDataSource 的 DataContext 似乎没有公开,因此我无法访问它以将新对象附加到 DataSource 的上下文中。
这样做的正常方法是什么?还是我应该废弃 LinqDataSource
我想用从另一个 DataContext 检索到的记录来更新一个 LinqDataSource。问题是 LinqDataSource 的 DataContext 似乎没有公开,因此我无法访问它以将新对象附加到 DataSource 的上下文中。
这样做的正常方法是什么?还是我应该废弃 LinqDataSource
很好的理由 - 您不能在不同的 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
}